如何在 Python 中过滤字典?

新手上路,请多包涵
d = {'foo': 'x',
     'bar': 'y',
     'zoo': 'None',
     'foobar': 'None'}

我想过滤所有值为 'None' 的项目,并更新 foobar 具有特定值的项目。我试过了:

 for i in x.items():
   ....:    if i[i] == 'None':
   ....:        x.pop(i[0])
   ....:    else:
   ....:        x.update({i[0]:'updated'})

但它不起作用。

原文由 user426795 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 381
2 个回答

目前尚不清楚您发布的字典中的 'None' 是什么。如果它是一个字符串,您可以使用以下内容:

 dict((k, 'updated') for k, v in d.items() if v != 'None')

如果是 None ,直接替换检查即可,例如:

 dict((k, 'updated') for k, v in d.items() if v is None)

(如果您仍在使用 Python 2,请将 .items() 替换为 .iteritems()

原文由 khachik 发布,翻译遵循 CC BY-SA 4.0 许可协议

目前尚不清楚你从哪里得到你的 'updated' 价值,但一般来说它看起来像这样:

 {i: 'updated' for i, j in d.items() if j != 'None'}

在 python2.7 或更新版本中。

原文由 SilentGhost 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏