表达式的字典列表

2024-06-01 08:10:31 发布

您现在位置:Python中文网/ 问答频道 /正文

Python 3.4.3版

给定词典列表:

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

和一个变量k

k = 'Frodo'

任务是从字典中写一个表达式到一个签名列表,其中键不存在必须显示为“notpresent”,所有问题必须在一行中解决。你知道吗

我写了一行字,给出了理想的结果:

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]如果dictionary中的“key”

在dictionarylist中使用for kk

之后阿宾塞回答了这个问题,并给了我一些启示:我已经解决了它没有

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

我的主要问题是else语句的正确位置。你知道吗


Tags: in列表forif字典notresitem
1条回答
网友
1楼 · 发布于 2024-06-01 08:10:31
>>> 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']
>>> 

相关问题 更多 >