python 列表深浅copy 及相关操作

Posted 无所住心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 列表深浅copy 及相关操作相关的知识,希望对你有一定的参考价值。

1、浅COPY,如果源变化,p1[1][1]、p2[1][1]、person[1][1]会一起变化
import copy
person = [‘name‘,[‘saving‘,100]]
‘‘‘
p1 = copy.copy(person)
p2 = person[:]
p3 = list(person)
‘‘‘
p1 = person[:]
p2 = person[:]
print(p1)
print(p2)

p1[0] = ‘alex‘
p2[0] = ‘fengjie‘
print(p1)
print(p2)

p1[1][1] = ‘50‘
print(p1)
print(p2)

1、深copy:源变化,不影响
import copy
names2 = copy.deepcopy(names)
print(names)
print(names2)
names[2] = "湘碰"
names[3][0] = "ALEC"
print(names)
print(names2)

3、元组:不可以编辑的列表,其他操作同列表
names = (‘alex‘, ‘jack‘)

4、列表操作
#列表类型
names = ["Zhangyang","Guyun","Xiangpeng",["alex","jack"],"xulianghen"]
names2 = ["1","2","3","4"]
print(names)
#print(names[0]) #第一个位置
#print(names[0],names[2])
#print(names[1:3]) #切片,顾头不顾尾
#print(names[1:]) #取从1到结束位置
#print(names[-1]) #取最后一个
#print(names[-2:-1]) #不包含最后一个值,顾头不顾尾
#print(names[:3]) #0可以忽略

#names.append("Leihaidong") #插入到最后面
#names.insert(1,"Chenronghua") #插入到固定位置 ,一次只能插入一个

#names[2] = "Xiedi" #修改

#删除
#names.remove("Zhangyang")
#del names[1]
#names.pop(1) #不输入默认删除最后一个

#print(names.index("Guyun")) #找Guyun的下标
#print( names[names.index("Guyun")])
#统计Guyun个数
#print(names.count("Guyun"))
#names.clear() #清空
#names.reverse() #反转
#names.sort() #排序
#names.extend(names2) #扩展
#del names2 #删除变量
 




































































以上是关于python 列表深浅copy 及相关操作的主要内容,如果未能解决你的问题,请参考以下文章

字符串, 列表, 元祖, 集合, 字典的相关操作和函数, 深浅copy

Python学习————深浅copy

Python中的深浅拷贝,赋值及引用

4 . 列表相关操作_函数 ; 深浅拷贝 2019-10-30

Python列表操作与深浅拷贝——列表深浅拷贝删除反转排序

python之集合深浅copy文件操作函数初识