python - 从两个可迭代对象创建字典并使用它们

标签 python dictionary iterable

假设我有两个列表,我想根据它们制作一个字典。喜欢:

>>> l = [1, 2, 3, 4, 5]
>>> x = ['a', 'b', 'c']
>>> dict(zip(l, x))
{1: 'a', 2: 'b', 3: 'c'}

这正如我所愿,因为列表的长度不相等,元素 45 被遗漏了,没有相应的值为他们。这符合预期。

但是如果我想要一个值,对 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/

相关文章:

java - 具有迭代器错误的Reducer

javascript - 使用 IterableDiffer 在 Angular 8 中获取数组大小更改

python - 如何在 pandas 或 matplotlib 中绘制两个 y 轴上的数据?

python - 根据属性之和将数组拆分为数组数组

c# - 为什么我的字典在 C# 中使用复合键时表现不佳?

java - 我可以有一个没有键的非空 HashMap 吗?

java - Iterable<?> 做什么

python - 您如何为具有三个值的状态建模?

python - 詹森-香农散度

python - 二维数组/字典组合