python - 如何使用带有条件表达式的 Python 列表理解

标签 python list-comprehension conditional-statements

<分区>

有一个字典,

dlist = [{'Bilbo' : 'Ian', 'Frodo' : 'Elijah'}, {'Bilbo' : 'Martin', 'Thorin' : 'Richard'}]

然后让 k = 'Frodo'

我想把k对应的值存在的时候提取出来做一个列表。

我写了

value_list = [dlist[i][k] for i in range(len(dlist)) if k in dlist[i] else "NOT PRESENT"]. 

但是计算机说 else 是错误的。我不知道为什么。

最佳答案

当列表理解中有 else 部分时,将其放在 for 循环之前,示例 -

value_list = [dlist[i][k] if k in dlist[i] else "NOT PRESENT" for i in range(len(dlist))]
value_list
>>> ['Elijah', 'NOT PRESENT']

关于python - 如何使用带有条件表达式的 Python 列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424272/

相关文章:

python - 二维数组的python总和如何返回列表

python - 使用 Spark 对分组数据进行快速行间计算

python 列表理解字母生成

c++ - 如何减少使用std::condition_variable时生产者获得锁而消费者无法获得锁的可能性?

python - 根据另一列中的值删除一列的重复项,Python,Pandas

python - 为什么多线程Python程序在ec2微实例上速度很慢?

python - 在 pandas 数据框中旋转一列并创建 4 个新列

python - 计算满足谓词的序列元素的最快方法

erlang - 列表理解与高阶函数

java - java中的while循环条件