python - 如何在字典理解中使用 if/else?

标签 python dictionary dictionary-comprehension

在 Python 2.7+ 中是否存在一种方法来制作类似以下内容?

{ something_if_true if condition else something_if_false for key, value in dict_.items() }

我知道你可以用'if'做任何事情:

{ something_if_true for key, value in dict_.items() if condition}

最佳答案

你已经知道了:A if test else B 是一个有效的 Python 表达式。如图所示,您的 dict 理解的唯一问题是 dict 理解中表达式的位置必须有两个表达式,用冒号分隔:

{ (some_key if condition else default_key):(something_if_true if condition
          else something_if_false) for key, value in dict_.items() }

最后的if子句起到过滤器的作用,与有条件表达式不同。

关于python - 如何在字典理解中使用 if/else?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9442724/

相关文章:

python - 在 Python 中将列表转换为字典

python - 使用 python 生成完整的 XML 文件

python - 如何在 Python 中循环 HDF5 组,根据掩码删除行?

python - 当两个不同的规则路径可以生成给定的输出时,snakemake 能否避免歧义?

javascript - 以 JSON 形式返回字典并使用 JS 函数成功访问其内容 - C#

Scala 展平嵌套 map

python - 使用字典理解压缩/转换嵌套列表

python - Matplotlib 绘图窗口未使用 command-w 关闭

python - 一次遍历 Python 字典 N 项以进行 CSV 写入

c# - 压缩大型词典