筆者在近期寫**時遇到乙個有趣的問題,就是關於list賦值的事情。
比如a = [1,2,3,4],
假如把a賦值給b,即b=a,
如果接下來我們對b進行b+=b操作,然後輸出a,會發生什麼事情呢?
我們可以看到如下的結果,也就是對b的操作也影響到a了。
a = [1, 2, 3, 4]
b = a
b += b
print(a)
# [1, 2, 3, 4, 1, 2, 3, 4]
這是因為,在pyhon中,list是當成乙個類看待的,而a是型別為list的乙個物件,python裡面的物件賦值,是讓b,a指向同乙個記憶體空間,對a,b的操作都會影響到這個物件。
而為了避免這種情況,我們可以使用python裡面的copy機制。copy有淺copy和deepcopy,deepcopy是建立乙個完全一樣的,但全新的副本。
import copy
a = [1, 2, 3, 4]
b = copy.deepcopy(a)
b += b
print(a)
[1, 2, 3, 4]
python list常用操作
list的常用操作 因為列表是可變的,大多數列表的方法都會就地改變列表物件 2.pop 2 移除給定偏移量的一項,從而使列表減小 3.remove 按照值移除元素 4.insert可以在任意位置插入元素 5.sort 預設按照公升序對列表進行排序,reverse對列表進行反轉,都直接對列表進行了改變...
python list相關操作
list的相關操作 找list中重複出現的元素的index labels 1,2,1,2,0,0,2 id i for i,x in enumerate labels if x 1 id結果為 4,5 g 0.4310240649520269,0.3027811144738707,0.2735361...
python list常用操作
使用 list.index value 功能 返回value在list中的索引 使用 list.count value 功能 返回value在list 現的次數 方法1 list reversed iterable 方法2 list 1 思路 len set list 1 例項 in 8 t a1 ...