列表的常规操作
列表的增删改
1、索引取值(正反都可以),不仅可以取还可以存 (字符串不只可以取,不可以存)
l1 = [1,2,3,4,5,6] print(l1[2]) l1[2] = 3333 print(l1)
2.索引切片
print(l1[1:3])
反向切片取奇数
a[::-1]
或
sorted(a)
取奇数
d = a[::2]
3.insert、 append、 extend
# 、 insert l1.insert(1,999) print(l1) # 追加:append 追加值。注意与extend()的区别,只能添加到列表的最后一位,一次性只能添加一个值(可以是一个字符,列表) print(l1.append([7,8,9]))
[1, 999, 2, 3333, 4, 5, 6, [7, 8, 9]] # 注意append 与 extend的区别 extend 分开多次追加 l1.extend([7,8,9]) print(l1)
[1, 999, 2, 3333, 4, 5, 6, [7, 8, 9], 7, 8, 9]
4. remove && pop
# remove 指定值删除,比较彻底 l1.remove(1) print(l1) # pop() : 不传值,默认从最后开始删,指定索引删值,pop是有返回值的 l1.pop() val = l1.pop() print(val) # 返回值 为何是8 l1.pop(2) print(l1)
5.查找元素的索引位置
l1 = ['oldboy','yangjian','nezha','leizhenzi'] print(l1.count('oldboy')) # 查找元素的索引位置 也可以在起止范围查找 print(l1.index('nezha'))
6. 排序:sort 在原有列表中进行排序操作 没有返回值
l1.sort(reverse = False) print(l1)
7. sort 与 sorted sort是列表的内置方法,在原有的列表排序,不会生成新的列表,sorted(l1)会生成新的列表
l2 = sorted(l1) print(l2)
8. clear 清除
l1.clear() print(l1)
9. copy && deepcopy
浅拷贝
lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]] print(lst1.copy()) #浅拷贝 拷贝出来的列表第一层与原来是不同的内存地址,第二层指向原来的地址 >>> ['金毛狮王', '紫衫龙王', '青翼蝠王', '白眉鹰王', ['张无忌', '赵敏', '周芷若']] print(lst1[:]) #浅拷贝 >>> ['金毛狮王', '紫衫龙王', '青翼蝠王', '白眉鹰王', ['张无忌', '赵敏', '周芷若']]
深拷贝
lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]] lst2 = copy.deepcopy(lst1) print(lst2) >>> ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]] print(id(lst1)) >>> 358961124936 print(id(lst2)) >>> 358961315656 # lst1和lst2 是两个不同内存地址的