有些時候我們在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...