列表(list)
Python中列表由方括号"[ ]"括起来,元素之间使用逗号","分隔,元素可以是不同类型的元素,一般情况下,各元素的类型相同。
1、访问列表中的值
1.1 索引
列表和字符串一样,元素的索引都是从0开始,第二个是1,以此类推。
print(list[1]) # 结果为green
1.2 反向索引
与字符串一样,最后一个为-1,倒数第二个为-2,以此类推。
print(list[-2]) # 结果为white
1.3 切片索引
使用下标来索引列表中的值
注意:切片是深拷贝操作
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
some_nums = nums[2:7]
print(some_nums) # 结果是[30, 40, 50, 60, 70]
注意:切片操作格式为list[start:stop:step],start不写默认为从列表第一个元素开始截取;end不写默认为截取到最后一个元素为止;step不写默认为截取的步长为1。截取时遵循左闭右开原则,如:nums[1:4]表示从下标为1的元素截取到下标为3的元素为止,即[20, 30, 40]。
2、更新列表
对列表的数据项进行修改或更新,可使用append()方法来添加列表项到列表末尾
list = ['1', '2', '3', '4']
list.append('5')
print(list) # 输出为 ['1', '2', '3', '4', '5']
3、删除列表元素
可以使用 del 语句来删除列表的的元素
list = ['1', '2', '3', '4']
del list[3]
pritn(list) # 输出为['1', '2', '3']
也可以使用 del 语句删除列表中的一段,需要使用到切片,如:
list = ['1', '2', '3', '4']
del list[1:2]
print(list) # 输出为['1', '4']
4、列表操作符
len([1, 2, 3]) # 返回列表长度 3
[1, 2, 3] + [4, 5, 6] # 列表组合 [1, 2, 3, 4, 5, 6]
['Hi!'] * 4 # 列表重复 ['Hi!', 'Hi!', 'Hi!', 'Hi!']
3 in [1, 2, 3] # 查找元素是否位于列表中 True
for x in [1, 2, 3]: print(x) # 迭代 1 2 3
5、嵌套列表
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
print(x) # 输出为[['a', 'b', 'c'], [1, 2, 3]]
print(x[0]) # 输出为['a', 'b', 'c']
print(x[0][1]) # 输出为b
6、列表常用API
操作列表的函数
len(list)列表元素个数
max(list)返回列表元素最大值
min(list)返回列表元素最小值
list(seq)将元组转换为列表
列表的方法
- list.append(obj)在列表末尾添加新的对象
list = [1, 2, 3, 4, 5]
list.append(6)
print(list) # [1, 2, 3, 4, 5, 6]
- list.count(obj)统计某个元素在列表中出现的次数
list = [1, 2, 3, 3, 4, 5]
n = list.count(3)
print(n) # 2
- list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
x1 = [1, 2, 3, 4]
x2 = [5, 6, 7, 8]
x1.extend(x2)# 函数没有返回值,是修改列表
print(x1) # [1, 2, 3, 4, 5, 6, 7, 8]
注意:x1.extend(10) 报错,只能传入可迭代数据
- list.index(obj)从列表中找出某个值第一个匹配项的索引位置
x1 = [1, 2, 3, 4]
re = x1.index(3)
print(re) # 2
- list.insert(index, obj)将对象插入列表
x1 = [1, 2, 3, 4]
x1.insert(1, 20)
print(x1) # [1, 20, 2, 3, 4]
x1.insert(100, 10)
print(x1) # [1, 20, 2, 3, 4, 10]
x1.insert(99, 30)
print(x1) # [1, 20, 2, 3, 4, 10, 30]
x1.insert(len(x1), 40)
print(x1) # [1, 20, 2, 3, 4, 10, 30, 40]
- list.pop(index=-1)移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
x1 = [1, 2, 3, 4]
re = x1.pop()
print(re) # [1, 2, 3]
- list.remove(obj)移除列表中某个值的第一个匹配项
x1 = [1, 2, 3, 4]
x1.remove(3)
print(x1) # [1, 2, 4]
- list.reverse()反向列表中元素
x1 = [1, 2, 3, 4]
x1.reverse()
print(x1) # [4, 3, 2, 1]
- list.sort( key=None, reverse=False)对原列表进行排序: x.sort(key=lambda a:abs(a-3), reverse=False)
x1 = [9, 6, 8, 7]
x1.sort()
print(x1) # [6, 7, 8, 9]
x1.sort(key=lambda a:abs(a - 8), reverse=False)
print(x1) #[8, 7, 9, 6]
- list.clear()清空列表
x1 = [1, 2, 3, 4]
x1.clear()
print(x1) # []
- list.copy()复制列表,深拷贝
x2 = x1.copy()
print(id(x1) == id(x2)) # False