python2/3 中刪除字典中value為空的鍵值對方法


python2

data_info = {
        'account': 1,
        'remark': 2,
        'sort': '',
        'weight': '',
  
    }

    for key in data_info.keys():
        if not data_info.get(key):
            del data_info[key]

 

python3

data_info = {
        'account': 1,
        'remark': 2,
        'sort': '',
        'weight': '',
  
    }

    for key in list(data_info.keys()):
        if not data_info.get(key):
            del data_info[key]

 

原因

只是在for循環中,相當於對鏈表的操作,它會自動調用next方法! 字典的迭代器會遍歷它的鍵,在這個過程中,不能改變這個字典!不能刪除、添加數據 要先記錄要刪除的元素的索引,遍歷完后再刪除,data_info.keys()在python2中是一個獨立的列表,python3中是迭代器,需要我們list轉換生成一個獨立的列表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM