一、列表切片
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2]
print(numbers[0:2])
print(numbers[3:6])
print(numbers[:])
print(numbers[2:])
print(numbers[:6])
print(numbers[-4:-2])
[5, 1]
[9, 0, 3]
[5, 1, 6, 9, 0, 3, 4, 2]
[6, 9, 0, 3, 4, 2]
[5, 1, 6, 9, 0, 3]
[0, 3]
二、列表基本操作
1、修改列表
使用索引表示法给特定位置的元素赋值,不能给不存在的索引赋值
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2]
numbers[2]=100 #将索引为2的值修改为100
print(numbers)
[5, 1, 100, 9, 0, 3, 4, 2]
2、删除列表元素
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2]
del numbers[2] #将索引为2的值删除
print(numbers)
[5, 1, 9, 0, 3, 4, 2]
3、使用切片修改和新增列表元素
同时给多个元素赋值,还可在不替换原有元素的情况下插入新元素
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2]
numbers[7:]=[100,200,300]
print(numbers)
[5, 1, 6, 9, 0, 3, 4, 100, 200, 300]
numbers=[5,1,6,9,0,3,4,2]
numbers[8:]=[100,200,300]
print(numbers)
[5, 1, 6, 9, 0, 3, 4, 2, 100, 200, 300]
三、列表方法
1、append 将一个对象附加到列表末尾
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2]
numbers.append(100)
print(numbers)
[5, 1, 6, 9, 0, 3, 4, 2, 100]
2、clear 清空列表内容
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2]
numbers.clear()
print(numbers)
[]
3、copy 复制列表
常规的复制只是将另一个变量名指向了列表
代码语言:javascript复制numbers1=[5,1,6,9,0,3,4,2]
numbers2=numbers1
numbers2[0]=500
print(numbers1)
[500, 1, 6, 9, 0, 3, 4, 2]
要让numbers1和numbers2指向不同的列表,必须将numbers2关联到numbers1的副本,就用到copy
代码语言:javascript复制numbers1=[5,1,6,9,0,3,4,2]
numbers2=numbers1.copy()
numbers2[0]=500
print(numbers1,numbers2)
[5, 1, 6, 9, 0, 3, 4, 2] [500, 1, 6, 9, 0, 3, 4, 2]
4、count 统计指定元素再列表出现的次数
代码语言:javascript复制numbers1=[5,1,6,9,0,3,4,2]
print(numbers1.count(numbers1[0]))
print(numbers1.count(10))
1
0
5、extend 将多个值追加到列表末尾,原列表被更改,看起来类似于列表的拼接,但有重要的区别,拼接是将修改被扩展的列表,生成一个全新的列表,原列表不变
代码语言:javascript复制numbers1=[1,2,3]
numbers2=[4,5,6]
numbers=numbers1 numbers2
print(numbers1,numbers2,numbers)
[1, 2, 3] [4, 5, 6] [1, 2, 3, 4, 5, 6]
numbers1=[1,2,3]
numbers2=[4,5,6]
numbers1.extend(numbers2)
print(numbers1,numbers2)
[1, 2, 3, 4, 5, 6] [4, 5, 6]
6、index 在列表中查找指定值第一次出现的索引
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2,0]
print(numbers.index(0))
4
7、insert 将一个对象根据索引插入列表
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2,0]
numbers.insert(3,100)
print(numbers)
[5, 1, 6, 100, 9, 0, 3, 4, 2, 0]
8、pop 从列表中删除一个元素,并返回删除的元素,默认删除最后1元素,还可根据索引删除元素
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2,0]
numbers.pop()
print(numbers)
[5, 1, 6, 9, 0, 3, 4, 2]
numbers=[5,1,6,9,0,3,4,2,0]
numbers.pop(0)
print(numbers)
[1, 6, 9, 0, 3, 4, 2, 0]
9、remove 删除第一个指定值的元素
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2,0]
numbers.remove(0)
print(numbers)
[5, 1, 6, 9, 3, 4, 2, 0]
10、reverse 翻转列表,按相反顺序排列列表数据;如果不想改变原列表,对原列表的副本进行翻转用reversed(列表),返回的是一个迭代器,需要用list将对象转换为列表
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2,0]
numbers.reverse()
print(numbers)
[0, 2, 4, 3, 0, 9, 6, 1, 5]
______________________________________
numbers=[5,1,6,9,0,3,4,2,0]
print(reversed(numbers))
print(numbers)
<list_reverseiterator object at 0x0000020A531BD8D0>
[5, 1, 6, 9, 0, 3, 4, 2, 0]
numbers=[5,1,6,9,0,3,4,2,0]
print(list(reversed(numbers)))
print(numbers)
[0, 2, 4, 3, 0, 9, 6, 1, 5]
[5, 1, 6, 9, 0, 3, 4, 2, 0]
11、sort 列表升序排列,降序排列需要加上(reverse=True),改变了原列表;如果不想改变原列表,对原列表的副本进行升序排列用sorted(列表)
代码语言:javascript复制numbers=[5,1,6,9,0,3,4,2,0]
numbers.sort() #升序
print(numbers)
[0, 0, 1, 2, 3, 4, 5, 6, 9]
numbers=[5,1,6,9,0,3,4,2,0]
numbers.sort(reverse=True) #降序
print(numbers)
[9, 6, 5, 4, 3, 2, 1, 0, 0]
numbers=[5,1,6,9,0,3,4,2,0]
print(sorted(numbers))
print(numbers)
[0, 0, 1, 2, 3, 4, 5, 6, 9]
[5, 1, 6, 9, 0, 3, 4, 2, 0]