如何用if/elif/else使用列表理解从多个列表中组装词典

2024-04-26 20:28:06 发布

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

具有三个列表变量(所有不同的大小)和一个列表理解:

indexesA=[1,2,3,4,5]
indexesB=['a','b','c','d']
values=['Dog','Cat','Sheep','Donkey','Horse']

keys=[2,3,'d']    
print [values[indexesA.index(key)] for key in keys if key in indexesA and indexesA.index(key)<len(values)]

我需要一本字典:

{2: 'Cat', 3: 'Sheep', 'd': 'Donkey'}

如果indexesA列表的值中有key,则应首先检查该列表。如果没有,则选中indexesB。 如何做到这一点?你知道吗

编辑时间:

请注意,我在问题中发布的列表理解只是检查indexesA键。代码不完整。你知道吗

print [values[indexesA.index(key)] for key in keys if key in indexesA and indexesA.index(key)<len(values)]

Tags: andkeyin列表forindexifkeys
1条回答
网友
1楼 · 发布于 2024-04-26 20:28:06

这是一种使用list-comprehensions的方法

>>> keys = [2, 3, 'd']
>>> {k: values[indexesA.index(k) if k in indexesA else indexesB.index(k)] for k in keys if (k in indexesA) or (k in indexesB)}
{2: 'Cat', 3: 'Sheep', 'd': 'Donkey'}
>>> 

免责声明:此代码既不可读,也不可维护或扩展。你知道吗

相关问题 更多 >