python中list賦值問題

2021-10-02 01:23:10 字數 911 閱讀 5836

有些時候我們在for迴圈中想把某乙個list或者dict賦值給一些元素,比如下面這種場景:

我們想得到的是lst2的值是

[0]

[0, 1]

[0, 1, 2]

[0, 1, 2, 3]

[0, 1, 2, 3, 4]

但是結果是

[0, 1, 2, 3, 4]

[0, 1, 2, 3, 4]

[0, 1, 2, 3, 4]

[0, 1, 2, 3, 4]

[0, 1, 2, 3, 4]

lst1 = 

lst2 =

for i in range(5):

for j in lst2:

print(j)

這是因為我們一直在將同乙個lst1賦值給lst2的元素,並且一直在清空lst1。有以下處理方法:

①深拷貝

有深拷貝就有淺拷貝,淺顯地說淺拷貝就是不管怎麼變化都是指向同乙個定址位址,所以原物件和拷貝物件只要一者有變動,都會聯動變化,也就是上面lst2的內容都變成[0,1,2,3,4]的意思。而深拷貝則是複製出乙個不相關的物件,原物件和拷貝出來的物件變化不相關。

import copy

lst1 =

lst2 =

for i in range(5):

for j in lst2:

print(j)

②字串固定

lst1 = 

lst2 =

for i in range(5):

for j in lst2:

print(j)

上述**能夠得到和深拷貝一樣的結果。

python中list排序問題

用python實現list的排序方法 1 list列表排序 方法1.用list的內建函式list.sort進行排序 list.sort func none,key none,reverse false 方法2.用序列型別函式sorted list 進行排序 list 5,3,9,1 list 5,3...

python類中引數賦值問題

import numpy as np class salary def init self,monthly 建構函式 self.monthly 此處的monthly與傳入的monthly意義不同 for i in range len monthly 此處的monthly為外部傳入的 def sum ...

python 賦值問題

python的可變與不可變資料型別 賦值問題 看下面 理解一下賦值邏輯 python之間是引用用賦值,不是值賦值。coding utf 8 int 不可變型別 a 100 200 可變型別 def add value print chuange before is value is format v...