1. 程式人生 > >09_Python深拷貝、淺拷貝

09_Python深拷貝、淺拷貝

dict 出現 ngs error col spa 是把 runtime 其中

一、循環列表,刪除其中的元素

l1 = [1,2,3,4,5,6,7] 循環刪除奇數位元素

1.正序循環刪除,會出現越界情況,所以采用倒敘的方式刪除

1 l1 = [1,2,3,4,5,6,7]
2 for i in range(len(l1) - 1,-1,-1):
3     if i % 2 == 1:
4         l1.pop(l1[i])
5 
6 print(l1)

二、循環字典,刪除其中的元素

如果循環刪除的話,編譯器會報 RuntimeError: dictionary changed size during iteration

1 #錯誤代碼
2 #dic = {‘k1‘:‘zhangsan‘,‘k2‘:‘lisi‘,‘k3‘:‘wangwu‘,‘name‘:‘xiaoming‘}  刪除帶k的key
3 dic = {k1:zhangsan,k2:lisi,k3:wangwu,name:xiaoming} 4 5 for i in dic: 6 if k in i: 7 del dic[i] 8 9 print(dic)

真確的方式,是把key放到一個列表中,然後根據列表元素進行刪除

 1 #正確的代碼
 2 dic = {k1:zhangsan,k2:lisi,k3:wangwu,name:xiaoming}
 3 l1 = []
 4 for i in dic:
 5     if 
k in i: 6 l1.append(i) 7 8 for i in l1: 9 del dic[i] 10 11 print(dic)

三、深拷貝、淺拷貝

09_Python深拷貝、淺拷貝