python List賦值操作

2021-10-11 14:24:31 字數 607 閱讀 9796

筆者在近期寫**時遇到乙個有趣的問題,就是關於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 ...