复制一个list

2018-02-27 11:36:33来源:oschina作者:pkookp8人点击

分享

一开始以为可以直接用


lista=[xxx, yyy, zzz]


listb=lista


复制,后来发现实际上listb实际上就是lista,修改listb后lista的值也被修改了


lista = [0, 1, 2, 3, 4]
print("%s %s" % (lista, id(lista)))
listb = lista
print("%s %s" % (listb, id(listb)))
=============================
[0, 1, 2, 3, 4] 8246256
[0, 1, 2, 3, 4] 8246256

后来找了一些办法复制一个list


lista = [0, 1, 2, 3, 4]
print("a %s %s" % (lista, id(lista)))
lista_ = lista #实际没有复制
print("a_ %s %s" % (lista_, id(lista_)))
'''
以下是复制
'''
listb = lista*1
print("b %s %s" % (listb, id(listb)))
listc=[]
for i in lista:
listc.append(i)#append方法
print("c %s %s" % (listc, id(listc)))
listd=[]
listd=lista[:] #slice
print("d %s %s" % (listd, id(listd)))
import copy
liste = copy.copy(lista)
print("e %s %s" % (liste, id(liste)))
listf = [i for i in lista]#列表生成式
print("f %s %s" % (listf, id(listf)))========================================
a [0, 1, 2, 3, 4] 40817648
a_ [0, 1, 2, 3, 4] 40817648
b [0, 1, 2, 3, 4] 40735088
c [0, 1, 2, 3, 4] 40817568
d [0, 1, 2, 3, 4] 40818648
e [0, 1, 2, 3, 4] 40818008
f [0, 1, 2, 3, 4] 40819608

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台