How to delete items from a dictionary while iterating over it?

前端 未结 10 1410
一生所求
一生所求 2020-11-22 17:22

Is it legitimate to delete items from a dictionary in Python while iterating over it?

For example:

for k, v in mydict.iteritems():
   if k == val:
           


        
10条回答
  •  傲寒
    傲寒 (楼主)
    2020-11-22 17:44

    You could also do it in two steps:

    remove = [k for k in mydict if k == val]
    for k in remove: del mydict[k]
    

    My favorite approach is usually to just make a new dict:

    # Python 2.7 and 3.x
    mydict = { k:v for k,v in mydict.items() if k!=val }
    # before Python 2.7
    mydict = dict((k,v) for k,v in mydict.iteritems() if k!=val)
    

提交回复
热议问题