的Python v3.4.3列表词典的一种表达
鉴于字典的列表:
dlist = [{'Bilbo':'Ian','Frodo':'Elijah'},{'Bilbo':'Martin','Thorin':'Richard'}]
和变量k
k = 'Frodo'
任务是写为一个函数,以从ASIGN列表字典,其中不存在的键必须显示为“不存在”,所有问题都必须在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]
,但我不能结合 词典[关键]如果“密钥”在字典
与在dictionarylist KK
abhinsit回答了这个问题后,给了我一些见解:我已经解决了.get
output = [item[k] if k in item else 'NOT PRESENT' for item in dlist]
我的主要问题是else语句的正确位置。
简而言之:这不是理解的正确语法,这是你正在寻找的。查看链接的副本。 – TigerhawkT3
如果您提供了预期的结果(打印时不是输出),您的问题就会更加清晰。另外,从标题中删除“Python343”,这是单独标签的用途。 –
另外,请查看'kk.get(k,'NOT PRESENT')'。 – TigerhawkT3