python 複製列表的不同方法

2021-10-25 07:24:46 字數 632 閱讀 8599

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 ...