List 知识目录
一、List 的创建
代码如下(示例):
a = [10,20,'gaoqi','sxt']
a=[]
a=list()
二、列表的增加和删除
1.增加
代码如下(示例):
a = [10,20,'gaoqi','sxt']
a.append(80)
print(a)
[10, 20, 'gaoqi', 'sxt', 80]
2.删除
del list[索引]
a = [10,20,'gaoqi','sxt']
del a[0]
print(a)
[ 20, 'gaoqi', 'sxt', 80]
3.list 的扩充
(1)+:创建了一个新对象
a = [20,'gaoqi','sxt']
a+=[50]
print(a)
[ 20, 'gaoqi', 'sxt', 80,50]
(2)extend:将目标列表的所有元素添加到本列表的尾部,没有创建新对象
a = [20, 'gaoqi', 'sxt', 80, 50]
id(a)
2462236091712
a.extend([100])#因为是目标列表,所以加上[]
a
[20, 'gaoqi', 'sxt', 80, 50, 100]
id(a)
2462236091712
(3)*:生成一个新列表,新列表元素时原列表元素的多次重复
b=[30]
b*=3
b
[30, 30, 30]
字符串、元组,list 都可以通过乘法进行扩展
4.list 的插入:insert()方法可以将指定的元素插入到列表对象的任意制定位置(索引,指定元素)
a.insert(0,99)
a
[99, 20, 'gaoqi', 'sxt', 80, 50, 100]
5.list 的删除
(1)del:删除列表指定位置的元素。
del list[索引]
(2)pop():删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。
b=[30, 30, 30, 50]
b.pop()
50
(3)remove():删除首次出现的指定元素,若不存在该元素抛出异常。
b=[30, 30, 30, 50]
b.pop()
50
b.remove(30)
b
[30, 30]
6. 列表元素访问和计数
(1)索引:索引的区间在[0, 列表长度-1]
a=[99, 20, 'gaoqi', 'sxt', 80, 50, 100]
a[6]
100
index():获得指定元素在列表中首次出现的索引:index(value,[start,[end]])
a=[10,20,30,40,50,20,30,20,30]
a.index(20)#首次出现20的索引位置
1
a.index(20,3)#从第3位开始,20所在的索引位置
5
a.index(20,5,7)#从第5到6位中间,是否存在元素20,存在,索引是多少(左闭右开)
(2)count 获得指定元素出现的次数
a=[10,20,30,40,50,20,30,20,30]
a.count(20)
3
(3)len() 返回列表长度
a=[10,20,30,40,50,20,30,20,30]
len(a)
9
7. 列表切片处理
切片slice 操作可以让我们快速提取子列表或修改。标准格式为:
[起始偏移量start:终止偏移量end[:步长step]]##从start 提
取到end-1,步长是step
###起始偏移量和终止偏移量不在[0,字符串长度-1],也不会报错。起始偏移量小于0 则会当做0,终止偏移量大于“长度-1”会被当成”长度-1”。
a=[10,20,30,40,50,20,30,20,30]
a[0:5:2]
[10, 30, 50]
a[-3:]#倒数后三个,但是正向打印出来
[30, 20, 30]
a[-5:-3]#(左闭右开)
[50, 20]
a[::-1]#倒序排列
[30, 20, 30, 20, 50, 40, 30, 20, 10]
8. 列表遍历元素
for i in []:
9. 列表排序
(1)[].sort:修改原列表,不建新列表的排序
a=[10,20,30,40,50,20,30,20,30]
a.sort()#默认升序排列
a
[10, 20, 20, 20, 30, 30, 30, 40, 50]
a.sort(reverse=True)
a
[50, 40, 30, 30, 30, 20, 20, 20, 10]
import random
random.shuffle(a) #打乱顺序
a
[20, 30, 20, 20, 50, 40, 30, 30, 10]
(2)sorted():建新列表的排序(返回新列表,不对原列表做修改。)
a=[10,20,30,40,50,20,30,20,30]
id(a)
2462235979712
a=sorted(a)
id(a)
2462236091712
(3) =reversed():返回迭代器
内置函数reversed()也支持进行逆序排列,与列表对象reverse()方法不同的是,内置函数
reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。
a = [20,10,30,40]
c = reversed(a)
c
<list_reverseiterator object at 0x0000000002BCCEB8>
list(c)
[40, 30, 10, 20]
list(c)
[]
10.列表相关的其他内置函数汇总
(1)max:max(a)
(2)min:min(a)
(3)sum:对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。sum(a)
11.多维list
a = [
["高小一",18,30000,"北京"],
["高小二",19,20000,"上海"],
["高小一",20,10000,"深圳"],
]
for m in range(3):
for n in range(4):
print(a[m][n],end="\t")
print() #打印完一行,换行