大家好,我是胡亥大魔王。今天介绍python中列表的使用
列表本身是一个值,这个值是一个数组
spam = ['cat', 'bat', 'rat', 'elephant']
其中spam是值,['cat', 'bat', 'rat', 'elephant']是数组,['cat', 'bat', 'rat', 'elephant']是spam的值。
列表中第一个值的下标是0,第二个值的下表是1,以此类推。
spam = ['cat', 'bat', 'rat', 'elephant']
print(spam[0]) # cat
print(spam[1]) # bat
print(spam[2]) # rat
print(spam[10]) # IndexError: list index out of range
注:假如下标超过了列表中值的个数,Python将给出IndexError报错信息。
整数值-1指的是列表中最后一个元素的下标,-2指的是列表中倒数第二个元素的下标,以此类推。
spam = ['cat', 'bat', 'rat', 'elephant']
print(spam[-1]) # elephant
print(spam[-2]) # rat
print(spam[-3]) # bat
获得子列表的操作叫做切片,切片可以获得列表中的多个值,结果是一个新列表。
切片的语法如下:
spam[1:4]
第一个整数(即1)是切片开始处的下标。第二个整数(即4)是切片结束处的下标。
切片的取值从第一个下标开始,直到第二个下标(但不包含)结束。
spam = ['cat', 'bat', 'rat', 'elephant']
print(spam[1:4]) # ['bat', 'rat', 'elephant']
省略
可以省略:两端的下标,省略:前面的下标等价于前面的下标是0,省略:后面的下标等价于后面的下标是-1(即列表长度)。
spam = ['cat', 'bat', 'rat', 'elephant']
print(spam[:3]) # ['cat', 'bat', 'rat']
print(spam[2:]) # ['rat', 'elephant']
用len()可以获得列表长度
spam = ['cat', 'bat', 'rat', 'elephant']
print(len(spam)) # 4
我们可以使用下标来改变列表中某个位置元素的值
spam = ['cat', 'bat', 'rat', 'elephant']
spam[1] = 'aaabbb'
print(spam) # ['cat', 'aaabbb', 'rat', 'elephant']
+操作可以连接两个列表,得到一个新列表
list1 = [1, 2, 3]
list2 = ['A', 'B', 'C']
list3 = list1 + list2
print(list3) # [1, 2, 3, 'A', 'B', 'C']
*操作可以作用于一个列表和一个整数,实现列表的复制
list1 = ['X', 'Y', 'Z']
list2 = list1 * 3
print(list2) # ['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z']
del语句可以删除列表中下标处的值,被删除后,位于被删除值后面的值,全部向前移动一个下标
spam = ['cat', 'bat', 'rat', 'elephant']
del spam[1]
print(spam) # ['cat', 'rat', 'elephant']
可有用for语句将列表进行遍历
spam = ['cat', 'bat', 'rat', 'elephant']
for i in spam:
print(i)
结果为:

利用 in 和 not in 操作符可以确定一个值是否在列表中,返回为 True 或 False
spam = ['cat', 'bat', 'rat', 'elephant']
print('cat' in spam) # True
print('dog' in spam) # False
print('dog' not in spam) # True
python在一行代码中可以给多个变量赋值
spam = ['cat', 'bat', 'rat', 'elephant']
a, b, c, d = spam
print(a) # cat
print(b) # bat
print(c) # rat
print(d) # elephant
用 index() 方法可以查找列表中某个值的下标,如果列表中没有这个值,会报ValueError
spam = ['cat', 'bat', 'rat', 'elephant']
print(spam.index('cat')) # 0
print(spam.index('dog')) # ValueError: 'dog' is not in list
append() 是向列表末尾添加值
spam = ['cat', 'bat', 'rat', 'elephant']
spam.append('dog')
print(spam) # ['cat', 'bat', 'rat', 'elephant', 'dog']
insert() 是向列表指定位置添加值,需要两个参数,第一个参数是新值的下标,第二个元素是要插入的新值
spam = ['cat', 'bat', 'rat', 'elephant']
spam.insert(2, 'dog')
print(spam) # ['cat', 'bat', 'dog', 'rat', 'elephant']
使用 remove() 方法可以移除列表中的某个值,如果移除列表中不存在的值将报ValueError错误
spam = ['cat', 'bat', 'rat', 'elephant']
spam.remove('bat')
print(spam) # ['cat', 'rat', 'elephant']
spam.remove('dog') # ValueError: list.remove(x): x not in list
注:如果知道想要删除的值的下标,使用 del 就可以。如果不知道下标,可以使用 remove()。
使用 sort() 方法可以对数字列表或者字符串列表进行排序
list1 = [1, 5, 6, 34, 7, 4, 9]
list1.sort()
print(list1) # [1, 4, 5, 6, 7, 9, 34]
list1.sort(reverse=True)
print(list1) # [34, 9, 7, 6, 5, 4, 1]
注:
list1 = list1.sort() 的方式试图获取返回值ASCII 字符顺序 ,而不是实际的字典顺序,这意味着大写字母排在小写字母之前