import copy
a = [[10], 20]
b = a[:]
c = list(a)
d = a * 1
e = copy.copy(a)
f = copy.deepcopy(a)
print id(a), a
30553152 [[10, 11], 20, 21]
print id(b), b
44969816 [[10, 11], 20]
print id(c), c
44855664 [[10, 11], 20]
print id(d), d
44971832 [[10, 11], 20]
print id(e), e
44833088 [[10, 11], 20]
print id(f), f
44834648 [[10], 20]
使用 a[:], list(a), a*1, copy.copy(a)四種方式複製列表結果都可以得到乙個新的列表,但是如果列表中含有列表,所有b, c, d, e四個新列表的子列表都是指引到同乙個物件上。只有使用copy.deepcopy(a)方法得到的新列表f才是包括子列表在內的完全複製。 Python 正確複製列表的方法
new old python老鳥都知道以上 是什麼意思。它複製列表old到new。它對於新手來說是種困惑而且應該避免使用這種方法。不幸的是 標記法被廣泛使用,可能是python程式設計師不知道更好的列表複製法吧。首先我們需要了解python是如何管理物件和變數。python沒有c語言中的變數。在c語...
Python 正確複製列表的方法
python 正確複製列表的方法 python沒有c語言中的變數。在c語言中,變數不止是個名字,它是位元組集合並真實存在於記憶體某個位置上。而在python中,變數僅僅是指向物件的標籤。看看以下語句 a 1,2,3 它表示我們建立了乙個指引指向列表 1,2,3 但是a不是列表。如果 b a 我們並沒...
Python 三種不同方法求素數
列印101 200之間的素數 質數 滿足條件 即該數不能被除1和自己本身以外的數整除,該數 除1和自己本身以外的數 0 for else一般方法 for else for i in range 101,201 for j in range 2,i if i j 0 break else print ...