如何遍历并修改字典中的值?

22 投票
6 回答
45986 浏览
提问于 2025-04-16 11:47
records = {'foo':foo, 'bar':bar, 'baz':baz}

我想把值为 None 的地方改成 0。我该怎么做呢?

比如:

records = {'foo':None, 'bar':None, 'baz':1}

我想把 foobar 改成 0

最终的字典是:

records = {'foo':0, 'bar':0, 'baz':1}

6 个回答

13

尝试一下

for key, value in records.iteritems():
    if value is None:
        records[key] = 0
20

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能在使用某个库时,发现它的某个功能没有按预期工作。这种情况可能会让人感到困惑,不知道该如何解决。

通常,解决这类问题的第一步是仔细检查代码,看看是否有拼写错误或者逻辑上的问题。有时候,问题可能出在我们对工具的理解上,或者是我们没有正确使用它的功能。

如果自己找不到问题所在,可以考虑去网上搜索一下,看看其他人是否遇到过类似的情况。StackOverflow是一个很好的地方,很多程序员会在这里分享他们的经验和解决方案。

另外,记得多看一下官方文档,里面通常会有详细的说明和示例,帮助我们更好地理解如何使用这个工具。

总之,遇到问题时不要着急,慢慢分析,查找资料,通常都能找到解决办法。

for k in records:
    if records[k] is None:
        records[k] = 0
19

另一种方法

records.update((k, 0) for k,v in records.iteritems() if v is None)

示例

>>> 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}

撰写回答