目录
- 列表类型
- 下标
- 切片
- 长度
- 修改元素中的值
- 连接和复制
- 删除列表中的值
- `in`和`not in`
- 多重赋值
- `index()`方法
- `append()`和`insert()`方法
- `remove()`方法
- `sort`方法
列表类型
列表是由多个值组成的序列。通常说的列表值指的是列表本身,而不是列表中的元素。列表以左方括号[
开始,以右方括号]
结束。列表中的值也称为表项,用逗号分隔。如
l1 = [1, 2, 3]
l2 = ['cat', 'bat', 'rat']
l3 = [] # 空列表
列表中也可以包含列表。如
l = [['cat', 'bat', 'rat'], [1, 2, 3]]
下标
列表中的第一个值下标是0,第二个值下标是2,以此类推。如
l = ['cat', 'bat', 'rat']
print(l[0]) # 'cat'
print(l[1]) # 'bat'
print(l[2]) # 'rat'
列表中的列表可通过多重下标访问。如
l = [['cat', 'bat', 'rat'], [1, 2, 3]]
print(l[0][1]) # 'bat'
print(l[1][2]) # 3
第一个下标表明使用的是哪个列表,第二个下标表明列表中的值。
也可使用负数作为下标,-1是最后一个下标,-2是倒数第二个下标,以此类推。如
l = ['cat', 'bat', 'rat']
print(l[-1]) # 'rat'
print(l[-3]) # 'cat'
切片
切片可以从列表中取得多个值,得到新的列表。如
l = ['cat', 'bat', 'rat', 'elephant']
print(l[1: 3]) # ['bat', 'rat']
print(l[: 2]) # ['cat', bat']
print(l[2: ]) # ['rat', 'elephant']
切片用冒号:
分隔两个数字,第一个数字表示开始处的下标,省略则默认0;第二个数字表示结束处的下标,省略则表示列表长度。新得到的列表从第一个数字开始,直到最后一个数字,但不包括最后一个数字。
长度
len()
函数将返回列表中元素的个数。如
len(['cat', 'bat', 'rat', 'elephant']) # 4
修改元素中的值
可利用下标的形式,修改列表中元素的值。如
l = ['cat', 'bat', 'rat']
l[1] = 'elephant'
print(l) # ['cat', 'elephant', 'rat']
连接和复制
+
可连接两个列表,得到新的列表。*
作用于一个列表和一个整数,实现列表的复制。如
[1, 2, 3] + ['cat', 'bat', 'rat'] # [1, 2, 3, 'cat', 'bat', 'rat']
['cat', 'bat', 'rat'] * 3 # ['cat', 'bat', 'rat', 'cat', 'bat', 'rat', 'cat', 'bat', 'rat']
删除列表中的值
del
语句删除某个下标处的值,被删除值后面的元素下标向前移动一位。如
l = ['cat', 'bat', 'rat']
del l[1]
print(l) # ['cat', 'rat']
in
和not in
in
和not in
确定一个值是否在列表中。如
'cat' in ['cat', 'bat', 'rat'] # True
'elephant' in ['cat', 'bat', 'rat'] # False
'cat' not in ['cat', 'bat', 'rat'] # False
'elephant' not in ['cat', 'bat', 'rat'] # True
多重赋值
用列表中的值为多个变量赋值,变量数目必须与列表长度相同。如
size, color, disposition = ['fat', 'black', 'loud']
index()
方法
用index()
方法查找元素在列表中的下标,如果该元素不在列表中,就报错。如果有多个元素,则返回第一个元素的下标。如
l = ['cat', 'bat', 'rat']
l.index('bat') # 1
l = ['cat', 'bat', 'rat', 'rat', 'elephant']
l.index('rat') # 2
append()
和insert()
方法
在列表中添加新的元素可以使用这种方法。append()
方法直接将元素添加至末尾。如
l = ['cat', 'bat', 'rat']
l.append('elephant') # ['cat', 'bat', 'rat', 'elephant']
insert()
方法可以在列表中任意位置插入值,第一个参数表示新元素下标,第二个参数表示新元素的值。如
l = ['cat', 'bat', 'rat']
l.insert(1, 'elephant') # ['cat', 'elephant', 'bat', 'rat']
remove()
方法
remove()
方法传入一个值,把这个值重列表中删除。如果该值不存在于列表中,则报错。如果存在多个值,只删除第一个。如
l = ['cat', 'bat', 'rat']
l.remove('bat') # ['cat', 'rat']
l = ['cat', 'bat', 'rat', 'bat']
l.remove('bat') # ['cat', 'rat', 'bat']
sort
方法
sort()
方法用于排序,如
l = ['d', 'e', 'a', 'c', 'b']
l.sort() # ['a', 'b', 'c', 'd', 'e']
可以指定reverse
关键字为True
,让其逆序排列。如
l = ['d', 'e', 'a', 'c', 'b']
l.sort(reverse=True) # ['e', 'd', 'c', 'b', 'a']
sort()
方法不能对既有数字又有字符串的列表排序。sort()
排序是区分大小写的,按ASCII码排序,如果要忽视大小写,则需要指定关键字key
为str.lower
。如
l = ['D', 'e', 'a', 'c', 'B']
l.sort() # ['B', 'D', 'a', 'c', 'e']
l.sort(key=str.lower) # ['a', 'B', 'c', 'D', 'e']