<分区>
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 语句的正确位置。