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