python列表複製

2021-09-24 15:48:08 字數 1135 閱讀 4678

我想實現乙個列表複製的操作,於是我就寫下了下面的**:

list_2 = list_1

print(list_2)

print(list_1)

結果卻是這個樣子滴:

['banana', 'berry']

['banana', 'berry']

於是乎,我發現了乙個問題,list_2 = list_1這樣寫並不是真正的列表複製,而是list_2 的指標指向了list_1所擁有的內容,類似下面這樣:

在網上搜尋後,學會了很多:

# 內建函式id()可以返回物件的唯一id。該id是物件的記憶體位址。

print(id(list_1), id(list_2))

結果如下:

2594026121288 2594026121288
也就是兩者的記憶體位址相同,再次證實我的想法!

那麼到底如何才能真正地實現複製操作呢? 方法如下:

# 方法1:

list_2 = list_1[:]

# 方法2:

list_2 = list(list_1)

# 方法3:

list_2 = list_1 * 1

# 方法4:

import copy

list_2 = copy.copy(list_1)

# or

list_2 = copy.deepcopy(list_1)

我們再次執行上面的**:

print(list_2)

print(list_1)

print(id(list_1), id(list_2))

結果如下:

['banana', 'berry']

2594030892616 2594030892424

感謝ifantasticme

python 列表複製

我們經常需要根據已有列表來建立全新的列表,下面來介紹列表複製的工作原理。1 原理 要複製列表,首先需要建立乙個包含整個列表的切片,方法是同時省略起始和終止索引 即讓python建立乙個始於第乙個元素,終止於最後乙個元素的切片,便可複製整個切片。例 將 myfoods 複製給 friendfoods ...

python 複製列表內容 Python 複製列表

python 複製列表 定義乙個列表,並將該列表元素複製到另外乙個列表上。def clone test li1 li copy li1 return li copy li1 4,8,2,10,15,18 li2 clone test li1 print 原始列表 li1 print 複製後列表 li...

Python列表複製操作

引用是指儲存的值為物件的位址。在 python 語言中,乙個變數儲存的值除了基本型別儲存的是值外,其它都是引用,因此對於它們的使用就需要小心一些。下面舉個例子 問題描述 已知乙個列表,求生成乙個新的列表,列表元素是原列表的複製 a 1,2 b a這種做法其實並未真正生成乙個新的列表,b指向的仍然是a...