首頁  >  文章  >  後端開發  >  完美解決python遍歷刪除字典裡值為空的元素報錯問題

完美解決python遍歷刪除字典裡值為空的元素報錯問題

高洛峰
高洛峰原創
2017-02-23 11:45:272128瀏覽

下面小編就為大家帶來一篇完美解決python遍歷刪除字典裡值為空的元素報錯問題。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧

exam = { 'math': '95', 'eng': '96', 'chn': '90', 'phy': '', 'chem ': '' }

使用下列遍歷的方法刪除:

#1. for e in exam:
2. if exam [e] == '':
3. del exam[e]

結果出現下列錯誤,怎麼解決:

Traceback (most recent call last):
 File "Untitled.py", line 3, in <module>
  for e in exam:
RuntimeError: dictionary changed size during iteration

正確做法:

#1. s = {"1":a,"2":b ,"3":c,"4":d,"5":e}
2. s_key = list(s.keys())
3. for k_s in s_key:

# 4.#例如我要刪除第四個元素

5.del s["4"]

#只是在for迴圈中,相當於對鍊錶的操作,它會自動呼叫next方法!

字典的迭代器會遍歷它的鍵,在這個過程中,不能改變這個字典!不能刪除、新增資料

要先記錄要刪除的元素的索引,遍歷完後再刪除,exam.keys()傳回的是一個獨立的清單

#以上這篇完美解決python遍歷刪除字典裡值為空的元素報錯問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持PHP中文網。

更多完美解決python遍歷刪除字典裡值為空的元素報錯問題相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn