列表-list
del:将指定索引位置的元素删除
a = [1,2,3,4,5,6] del a[2]
+:将多个列表连接起来
a = [1,2,3,4,5] b = [5,6,7,8,9] d = ['a', 'b', 'c'] c = a + b + d print(c) #[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 'a', 'b', 'c']
*:将n个列表接在一起
a = [1,2,3,4,5] b = a *3 print(b) #[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
in:判断某元素是否在列表里边
a = [1,2,3,4,5,6] b = 8 c = b in a #c 的值是一个布尔值 print(c) #False
list:将其他格式的数据转换成list
s = "I love wangxiaojing" print(list(s)) #['I', ' ', 'l', 'o', 'v', 'e', ' ', 'w', 'a', 'n', 'g', 'x', 'i', 'a', 'o', 'j', 'i', 'n', 'g']
append:在列表末尾插入一个值
a = [ i for i in range(1,5)] a.append(100)
insert:在列表指定位置插入一个值
# insert(index, data) 插入位置是index前面 a.insert(3, 666)
remove:在列表中删除指定的值的元素
# 如果被删除的值在list中不存在,则程序报错,所以可以在使用remove的时候添加一个try防止程序奔溃 a.remove(666)
clear:清空该列表
#不会改变列表的地址 a.clear() # 如果不需要列表地址保持不变,则清空列表可以使用以下方式 # a = list() # a = []
reverse:翻转列表里的所有内容
a.reverse() #[1, 2, 3, 4, 5] #[5, 4, 3, 2, 1]
extend:把一个列表直接拼接到另外一个上
a = [ 1,2,3,4,5] b = [6,7,8,9,10] a.extend(b) print(a) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
count:查找列表中指定值或元素的个数
a_cnt = a.count(8) print(a_cnt)
copy: 拷贝(浅拷贝)
# 深拷贝跟浅拷贝的区别 # 出现下列问题的原因是,copy函数是个浅拷贝函数,即只拷贝一层内容 # 深拷贝需要使用特定工具 a = [1,2,3, [10, 20, 30]] b = a.copy()#使用copy会使a和b的地址不同,但是内部其他结构的地址会相同 print(id(a)) print(id(b)) print(id(a[3])) print(id(b[3])) a[3][2] = 666 print(a) print(b) #140249408365768 #140249409236040 #140249409236232 #140249409236232 #[1, 2, 3, [10, 20, 666]] #[1, 2, 3, [10, 20, 666]]
列表内涵:通过简单方法创作列表
a = ['a', 'b', 'c'] # 下面代码的含义是,对于所有a中的元素,逐个放入新列表b中 b = [i for i in a] print(b) #['a', 'b', 'c']
a = [1,2,3,4,5] b = [i*10 for i in a] print(b) #[10, 20, 30, 40, 50]
#生成从1到34的一个列表 a = [x for x in range(1,35)] # 把a中所有偶数生成一个新的列表 b b = [m for m in a if m % 2 == 0] print(b) #[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34]
a = [i for i in range(1,4)] b = [i for i in range(100,400) if i % 100 == 0] # 列表生成是可以嵌套,此时等于两个for循环嵌套 c = [m+n for m in a for n in b] print(c) # 上面代码跟下面代码等价 for m in a: for n in b: print(m+n, end=" ") # 嵌套的列表生城市也可以用条件表达式 c = [ m+n for m in a for n in b if m+n < 250]
列表的分片操作:
l = [3,2,1,4,6,3,2] # 注意截取的范围,左闭右开 print(l[1:4]) # 下标值可以为空 print(l[:]) print(l[:4]) print(l[2:]) #[2, 1, 4] #[3, 2, 1, 4, 6, 3, 2] #[3, 2, 1, 4] #[1, 4, 6, 3, 2]
l = [3,2,1,4,6,3,2] #下标可以为负数 print(l[-2:-4]) print(l[-4:-2]) #如果分片左边值比右边大,则步长参数需要使用负数 print(l[-2:-4:-1]) #[] #[4, 6] #[3, 6]
l = [3,2,1,4,6,3,2] # 分片可以控制增长幅度,默认增长幅度为1 print(l[1:6:1]) # 打印从下标1开始的数字,每次隔一个 print(l[1:6:2]) # 下标可以超出范围,超出后不在考虑多余下标内容 print(l[2:10]) #[2, 1, 4, 6, 3] #[2, 4, 3] #[1, 4, 6, 3, 2]