如何遍历一个字典?

gom*_*mzi 22 python dictionary

records = {'foo':foo, 'bar':bar, 'baz':baz}
Run Code Online (Sandbox Code Playgroud)

我想将值更改为0if None.我怎样才能做到这一点?

例如:

records = {'foo':None, 'bar':None, 'baz':1}
Run Code Online (Sandbox Code Playgroud)

我想改变foobar0.最后的决定:

records = {'foo':0, 'bar':0, 'baz':1}
Run Code Online (Sandbox Code Playgroud)

S.L*_*ott 20

for k in records:
    if records[k] is None:
        records[k] = 0
Run Code Online (Sandbox Code Playgroud)


Nic*_*kis 19

其他方式

records.update((k, 0) for k,v in records.iteritems() if v is None)
Run Code Online (Sandbox Code Playgroud)

>>> records
{'bar': None, 'baz': 1, 'foo': None}
>>> records.update((k, 0) for k,v in records.iteritems() if v is None)
>>> records
{'bar': 0, 'baz': 1, 'foo': 0}
Run Code Online (Sandbox Code Playgroud)

  • 对于任何来到这里的人来说,对于Python 3来说,`records.items()`想知道为什么复制粘贴不起作用. (8认同)

Sve*_*ach 13

尝试

for key, value in records.iteritems():
    if value is None:
        records[key] = 0
Run Code Online (Sandbox Code Playgroud)


Ale*_*lds 9

for k, v in records.items():
    if v is None:
        records[k] = 0
Run Code Online (Sandbox Code Playgroud)

  • 如果你投票,那么留下这样做的理由是很好的礼仪. (3认同)
  • Upvote因为python 3中没有iteritems(). (2认同)