如何将两个列表合并为字典?
我有两个长度相同的列表:
[1,2,3,4]
和 [a,b,c,d]
我想创建一个字典,内容是 {1:a, 2:b, 3:c, 4:d}
有什么好的方法可以做到这一点呢?
6 个回答
7
dict(zip([1,2,3,4], ['a', 'b', 'c', 'd']))
这是一个链接,指向Python的官方文档,里面有关于Python内置函数的详细介绍。你可以在这里找到各种函数的用法和示例,帮助你更好地理解如何在编程中使用它们。
21
>>> dict(zip([1, 2, 3, 4], ['a', 'b', 'c', 'd']))
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
如果它们的大小不一样,zip
会把较长的那个截断,变得和较短的一个一样长。
212
dict(zip([1,2,3,4], [a,b,c,d]))
如果你的列表很大,建议使用 itertools.izip
。
如果你有的键比值多,想给多出来的键填上值,可以使用 itertools.izip_longest
。
这里的 a
、b
、c
和 d
是变量——只要它们被定义了,这样用是没问题的,但如果你想要它们作为字符串,可能是想用 ['a','b','c','d']
。
zip
会从每个可迭代对象中取出第一个元素,组合成一个元组,然后再取第二个元素,依此类推。
dict
可以接收一个可迭代的可迭代对象,其中每个内部可迭代对象都有两个元素——它会把第一个元素当作键,第二个元素当作值。