Python列表操作与深浅拷贝(7)——列表深浅拷贝、删除、反转、排序
2020-12-13 15:36
标签:eve 表复制 style 简单 影响 pytho NPU 一个 默认 浅拷贝:简单类型元素全复制,引用类型元素只复制引用 深拷贝:copy模块提供了deepcopy,引用类型完全复制为新元素 *:对引用类型做浅拷贝处理 remove(value) 基于元素查找,移除第一个出现的元素,并会引起列表元素移动O(n) pop(index) 基于索引查找,移除索引位元素O(1),并会引起列表元素移动O(n) pop() 移除列表尾部一个元素O(1),效率高 clear() 清除列表所有元素,使列表长度为0,元素引用计数减1,剩下一个空列表 reverse() 将列表元素反转,修改自身 sort(key=function,reverse=True) 对列表元素排序,默认升序,修改自身 key指定不同类型元素如何排序,只在排序中使用,不修改元素 reverse=True为降序排序 in 判断元素在列表中是否存在,返回bool值 Python列表操作与深浅拷贝(7)——列表深浅拷贝、删除、反转、排序 标签:eve 表复制 style 简单 影响 pytho NPU 一个 默认 原文地址:https://www.cnblogs.com/omgasw/p/11613085.html列表复制
L1 = [3,2,1,[4,5,6],8,‘abc‘]
L1
[3, 2, 1, [4, 5, 6], 8, ‘abc‘]
L2 = L1.copy()
L2
[3, 2, 1, [4, 5, 6], 8, ‘abc‘]
L1[3][1] = 10 #修改L1中的元素L2也随之变化
L1
[3, 2, 1, [4, 10, 6], 8, ‘abc‘]
L2
[3, 2, 1, [4, 10, 6], 8, ‘abc‘]
import copy
L3 = copy.deepcopy(L1)
L3
[3, 2, 1, [4, 10, 6], 8, ‘abc‘]
L1[3][1] = 20
L1
[3, 2, 1, [4, 20, 6], 8, ‘abc‘]
L3 #L3为深拷贝新生成的列表,修改L1元素对L3无影响
[3, 2, 1, [4, 10, 6], 8, ‘abc‘]
L4 = [[1,2,3]] * 3
L4
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
L4[1][1] = 10
L4
[[1, 10, 3], [1, 10, 3], [1, 10, 3]]
for x in L4:
print(x)
print(id(x)) #取内存地址
[1, 10, 3]
84289032
[1, 10, 3]
84289032
[1, 10, 3]
84289032 #内存地址相同
L5 = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
L5
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
for x in L5:
print(x)
print(id(x))
[1, 2, 3]
87157000
[1, 2, 3]
84213512
[1, 2, 3]
87157128
列表删除元素
L6 = [3,2,1,4,5,6,7,2,3,4]
L6
[3, 2, 1, 4, 5, 6, 7, 2, 3, 4]
L6.remove(2)
L6
[3, 1, 4, 5, 6, 7, 2, 3, 4]
L6.remove(10)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
L6.pop(3)
5
L6
[3, 1, 4, 6, 7, 2, 3, 4]
L6.pop(10)
L6
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
L6.pop()
4
L6
[3, 1, 4, 6, 7, 2, 3]L6.clear()
L6
[]
列表翻转
L7 = [3,2,1,4,5,6,7,2,3,4]
L7
[3, 2, 1, 4, 5, 6, 7, 2, 3, 4]
L7.reverse()
L7
[4, 3, 2, 7, 6, 5, 4, 1, 2, 3]
列表排序
L8 = [3,2,1,4,5,6,7,2,3,4,‘a‘,‘b‘,‘c‘]
L8
[3, 2, 1, 4, 5, 6, 7, 2, 3, 4, ‘a‘, ‘b‘, ‘c‘]
L8.sort()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
判断元素存在
‘c‘ in L8
True
4 in L8
True
10 in L8
False
文章标题:Python列表操作与深浅拷贝(7)——列表深浅拷贝、删除、反转、排序
文章链接:http://soscw.com/index.php/essay/35271.html