3

假设我有两个列表,我想用它们制作一本字典。像:

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

这可以按我的意愿工作,并且由于列表的长度不相等,因此元素45被遗漏了,并且它们没有相应的值。这正如预期的那样。

但是,如果我想要一个值,比如None输入的键l怎么办?我希望输出为:

{1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}

我认为的解决方案之一是迭代两者,比较它们的长度并None在需要的地方追加。我有一个也有效的解决方案,但我想知道它是否可以以更容易和更短的方式完成?

4

1 回答 1

12

采用

dict(itertools.izip_longest(l, x))
# {1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
于 2011-01-19T16:33:25.140 回答