完美解決python遍歷刪除字典里值為空的元素報錯問題
exam = { 'math': '95', 'eng': '96', 'chn': '90', 'phy': '', 'chem': '' }
使用下列遍歷的方法刪除:
1. for e in exam:
2. if exam[e] == '':
3. del exam[e]
結(jié)果出現(xiàn)下列錯誤,怎么解決:
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循環(huán)中,相當(dāng)于對鏈表的操作,它會自動調(diào)用next方法!
字典的迭代器會遍歷它的鍵,在這個過程中,不能改變這個字典!不能刪除、添加數(shù)據(jù)
要先記錄要刪除的元素的索引,遍歷完后再刪除,exam.keys()返回的是一個獨立的列表
以上這篇完美解決python遍歷刪除字典里值為空的元素報錯問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3利用scapy局域網(wǎng)實現(xiàn)自動多線程arp掃描功能
這篇文章主要介紹了Python3利用scapy局域網(wǎng)實現(xiàn)自動多線程arp掃描功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01Python Django2 model 查詢介紹(條件、范圍、模糊查詢)
這篇文章主要介紹了Python Django2 model 查詢介紹(條件、范圍、模糊查詢),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python實現(xiàn)疫苗接種管理數(shù)據(jù)庫步驟詳解
這篇文章主要為大家介紹了Python實現(xiàn)疫苗接種管理數(shù)據(jù)庫步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09python中*args與**kwarsg及閉包和裝飾器的用法
這篇文章主要介紹了python中*args與**kwarsg及閉包和裝飾器的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07python實現(xiàn)學(xué)生管理系統(tǒng)開發(fā)
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)學(xué)生管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07