09_Python深拷貝、淺拷貝
阿新 • • 發佈:2018-01-29
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的key3 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深拷貝、淺拷貝