本文已参与[新人创作礼]活动,一起开启掘金创作之路。
1.序列的概念
在python中,序列是常见的数据结构。
序列,指的是可存放多个值的连续内存空间
序列中的元素会按顺序排列存放,每个元素会有一个编号,我们称之为索引
从左往右来看序列,序列首元素的索引为0。第二个元素的索引为1,以此类推。
从右往左来看序列,序列末元素的索引为-1,倒数第二个元素的索引为-2,以此类推。
事实上,所有序列类型的都能进行某些特定的操作,比如:
- 通过索引访问元素
- 分片
- 加
- 乘
- 检查成员
在python中的序列包括:
- 列表
- 元组
- 字符串
2.列表(list)
2.1.列表的创建
我们通过一对中括号将若干数据括起来,以此来创建列表,数据之间用逗号隔开。
list_01 = [] # 创建空列表
list_02 = [3.1415,8,666] # 简单地创建一个列表
list_03 = [[1,2,3],[4,5,6]] # 创建二维列表
注意:
- 列表中的数据类型可以是任意的,即列表的元素不需要具有相同的数据类型。
- 列表中的元素可以重复
2.2.列表的访问
我们通过索引来访问列表中的元素。
1)访问一维列表
v_list = [2,4,8]
n1 = v_list[0]
n2 = v_list[1]
n3 = v_list[2]
m1 = v_list[-3]
m2 = v_list[-2]
m3 = v_list[-1]
print(n1,"==",m1)
print(n2,"==",m2)
print(n3,"==",m3)
运行结果如下:
2 == 2
4 == 4
8 == 8
上述代码中,我们定义了一个列表[2,4,8]
并且列表的索引为0,1,2,或者说:-3,-2,-1
所以可以看到:
索引为0的元素和索引为-3的元素相同。
索引为1的元素和索引为-2的元素相同。
索引为2的元素和索引为-1的元素相同。
看下图:
2)访问二维列表
d_list = [[1,2,3],[4,5,6],[7,8,9]]
var_6 = d_list[1][2]
print(var_6)
运行结果为:
6
可以看到,我们应该使用两个索引来访问二维列表。
第一个索引表示选择哪一个子列表
第二个索引表示选择子列表中的哪一个元素
2.3.列表的修改
我们可以对元素重新赋值,达到修改列表元素的目的。
2.4.列表的切片
语法:
列表名[first:end:step]
注意:
- 当我们对列表进行切片时,应该知道,切片的区间是左闭右开。即
[first.end) step表示切片时索引值的步长,这是可选项,默认值为1
实例:
当然,我们也能使用负数的索引来对列表进行切片:
我们也可以使用切片来修改元素值
2.5.列表的删除
我们使用del语句来删除列表里的元素。
如图:
当然,我们也能删除整个列表
如图:
2.6.列表的运算
列表的乘法
将列表乘上一个整数n,就得到了新列表。新列表包含着n个重复的原列表。
如图:
列表的加法
我们能通过加法法则来生成新的列表
如图:
2.7.列表的检查
我们能通过关键字in或not in来检查列表是否含有某元素,返回值是True或False
如图:
2.8.列表的遍历
我们可以利用循环来遍历列表的所有元素
如图:
3.列表的函数
min( )函数
min( )函数用于返回列表的最小值
如图:
max( )函数
max( )函数用于返回列表的最大值
注意!
再使用min()函数或max()函数时,列表中只能包含可以相互比较的元素,不然会报错。
比如:
len( )函数
len( )函数用于返回列表的长度,即列表的元素个数
如图:
list( )函数
list( )函数用于将元组或字符串转换为列表
如图:
reversed( )函数
reversed( )函数用于将列表的元素位置反向并返回重置的对象。
注意:
reversed( )函数应与list( )==函数一起使用才可以返回列表。
如图:
sorted( )函数
sorted( )函数用于返回已经排好序的新列表。
从例子可以看出,原列表里的元素并未改变!
4.列表的方法
append()方法
append( )方法会在列表的末尾添加单个元素,元素可以是任何数据类型
如图:
extend()方法
extend()方法用于扩展列表,可以一次性在列表末尾添加多个值。
index()方法
index()方法用于从列表中找出与某个值第一个匹配的索引的位置
语法:
list.index(value,start,end)
参数:
value:匹配的值start:该参数是可选的,用于表示寻找的初始位置,默认为0end:该参数是可选的,用于表示寻找的终止位置。
注意:
- 若指定了
start和end的值,查询的区间是左闭右开,即[start,end) - 若找不到匹配项,就会报错。
如图:
count()方法
count()方法用于统计某个元素在列表中出现的次
如图:
insert()方法
insert()方法用于将某个值插入列表中
语法:
list.insert(index, value)
参数:
index:插入的位置value:插入的值
如图:
remove()方法
remove()方法用于移除列表中某个值的第一个匹配项
注意,若无匹配项,就报错。
pop()方法
pop()方法用于移除列表中最后一个元素,并且返回该元素的值。
如图:
当然,pop()方法也能移除指定索引处的元素
如图:
注意,当你指定的索引超出了列表的索引范围,或者对空列表使用pop()方法,则会引起报错。
如图:
clear()方法
clear()方法用于删除列表中的所有元素,即剩下一个空列表。
注意:del语句和clear方法的区别!
二者区别在于:
del语句删除整个列表时,列表就不存在了clear方法删除整个列表时,列表会变成一个空列表
reverse()方法
reverse()方法用于将列表的元素全部反向存放,即翻转。
sort()方法
sort()方法用于将列表中的元素进行排序
语法:
list.sort(reverse=False)
参数reverse 是排序规则,默认为False,即升序。
当设置reverse = True后,列表将以降序规则进行排序。
如图:
==降序如下:==
copy()方法
copy()方法用于复制列表,返回一个复制后的新列表。
5.关于sorted()和sort()的补充
事实上,关于列表的sorted()函数和sort()方法都还含有另一个参数key。
我们用内置函数help()查看sorted()函数的详细说明如下:
按照说明来看:参数key是函数类型,用来支持自定义的排序方式。
也就是说,参数key是用于提供可以作为排序依据的函数
下面举两个例子
例子一:
我们用
stuScore列表存放五名同学的成绩现在需要对五位同学的成绩进行排序
我们自定义一个函数
cmpSecond,用于返回第二个元素。然后调用列表的
sort()方法指定key参数为函数
cmpSecond,指定第二个元素排序
如图:
例子二:
按字符串的长度进行升序排序
如图:
6.列表的小结
好了,列表就看到这。下一篇文章,我们来看元组