use*_*312 3 python dictionary iterable
假设我有两个列表,我想从中创建一个字典.喜欢:
>>> l = [1, 2, 3, 4, 5]
>>> x = ['a', 'b', 'c']
>>> dict(zip(l, x))
{1: 'a', 2: 'b', 3: 'c'}
Run Code Online (Sandbox Code Playgroud)
这个工程,我会想它和自名单长度不等,元素4和5被排斥在外,并没有对他们没有相应的值.这是预期的.
但是,如果我想要一个值,比如None钥匙l呢?我希望输出为:
{1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
我认为其中一个解决方案是迭代两者,比较它们的长度并None在需要的地方追加.我有一个可行的解决方案,但我想知道它是否可以以更容易和更短的方式完成?
Sve*_*ach 12
使用
dict(itertools.izip_longest(l, x))
# {1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
156 次 |
| 最近记录: |