python - 表达式的字典列表

标签 python list python-3.x dictionary

<分区>

python v3.4.3

给定字典列表:

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

和一个变量k

k = 'Frodo'

任务是编写一个表达式来从字典中分配列表,其中键不存在必须显示为“不存在”,所有问题必须在 1 行中解决。

我写了一行,给出了理想的输出:

for kk in dlist : kk[k] if k in kk else 'NOT PRESENT'

输出:

'Elijah'
'NOT PRESENT'

但问题是我无法将此输出分配给变量

res = list(for kk in dlist : kk[k] if k in kk else 'NOT PRESENT')

res = [for kk in dlist : kk[k] if k in kk else 'NOT PRESENT']

编辑: 此外,如果所有词典都有所需的键,这会给出正确的分配

res = [x[k] for x in dlist]

但我不能结合 dictionary[key] 如果'key'在字典中

在字典列表中使用 for kk

在 abhinsit 回答了这个问题并给了我一些见解之后:我已经在没有 .get 的情况下解决了它

output = [item[k] if k in item else 'NOT PRESENT' for item in dlist]

我的主要问题是 else 语句的正确位置。

最佳答案

>>> dlist = [{'Bilbo':'Ian','Frodo':'Elijah'},{'Bilbo':'Martin','Thorin':'Richard'}]
>>> required_key = 'Frodo'
>>> output = [item.get(required_key,'NOT PRESENT')for item in dlist]
>>> output
['Elijah', 'NOT PRESENT']
>>> 

关于python - 表达式的字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36856282/

相关文章:

javascript - 像javascript一样在python中递归解码URI组件

python - 添加字符串列表中的数字

python - 似乎无法在此列表中最后添加百分比?

python - 如何在 python 中使用 pygatt 从 BLE 设备获取通知?

python - 有没有人在 pyqt 5 中实现了一种将所选项目从一个 ListView 框移动到另一个 ListView 框的方法?

javascript - 我怎样才能让我的 Tornado 服务器渲染 javascript?

python - 在 python 循环中计算数字

python - 转换元组列表的大多数 pythonic 方法

有条件的 Python 循环

python - 修改异常消息而不丢失引发堆栈