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