假设我有两个列表,我想根据它们制作一个字典。喜欢:
>>> l = [1, 2, 3, 4, 5]
>>> x = ['a', 'b', 'c']
>>> dict(zip(l, x))
{1: 'a', 2: 'b', 3: 'c'}
这正如我所愿,因为列表的长度不相等,元素 4
和 5
被遗漏了,没有相应的值为他们。这符合预期。
但是如果我想要一个值,对 l
中的键说 None
怎么办?我希望输出是:
{1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
我认为的解决方案之一是迭代两者,比较它们的长度并在需要的地方附加 None
。我有一个也有效的解决方案,但我想知道是否可以用更简单和更短的方式完成它?
最佳答案
使用
dict(itertools.izip_longest(l, x))
# {1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
关于python - 从两个可迭代对象创建字典并使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4737901/