将两个不相等的列表压缩到字典中。如果key没有值,则给none。忽略没有键的值
有两个不同长度的列表。第一个包含键,第二个包含值。编写一个函数,根据这些键和值创建一个字典。如果键没有足够的值,字典应该有值None。没有足够键的值应该被忽略。
a = ['a', 'b', 'c']
b = [1, 2, 3, 4, 5]
dict(zip(a, b))
我需要这个:
{'a':'1', 'b':'2', 'c':'4'}
为了
a = ['a', 'b', 'c']
b = [1, 2]
dict(zip(a, b))
我需要这个:
{'a':'1', 'b':'2', 'c':'None'}
回答
构建一个迭代器b并迭代从a获取下一个元素b,默认为None,例如
it = iter(b)
{k: next(it, None) for k in a}
回答
itertools.zip_longest 是你需要的:
from itertools import zip_longest
dict(zip_longest(a,b) if len(a)>len(b) else zip(a,b))
if部分是避免None作为键。
THE END
二维码