Python。将 2 个列表转换为一个字典对象 [重复]

Posted

技术标签:

【中文标题】Python。将 2 个列表转换为一个字典对象 [重复]【英文标题】:Python. converting 2 lists into one dictionary object [duplicate] 【发布时间】:2012-09-24 19:46:43 【问题描述】:

可能重复:Map two lists into a dictionary in Python

我有 2 个这样的列表: ['一二三'] 和 [1, 2, 3]

我想把它变成这样的字典 '一':1,'二':2,'三':3

问题是我必须使用理解。 谢谢。

【问题讨论】:

为什么一定要用理解力? 这不是完全重复的,因为“关键是我必须使用理解”。接受的答案使用dict(zip(keys, values));没有使用列表推导式的答案(尽管一个答案使用生成器表达式,只需更改两个字符即可转换为推导式。)这可能是一个愚蠢的要求,但这是一个要求,所以它不是重复的。 【参考方案1】:
keys=['one', 'two', 'three'] 
values= [1, 2, 3]
dictionary = dict(zip(keys, values)) 

>>> print dictionary
'one': 1, 'two': 2, 'three': 3

看看builtin functions,它们经常会变得很方便。您可以从 Python 2.7 开始使用 dict 理解,但它们不应该是这样做的方式:

k: v for k, v in zip(keys, values)

【讨论】:

@ user1718234 -- 欢迎您。如果有帮助,您应该接受答案。【参考方案2】:
keys = ['one', 'two', 'three']
values = [1, 2, 3]
dict(zip(keys, values))

这已经是最pythonic的方式了。

如果你真的需要,你可以使用dict comprehension:

k: v for k,v in zip(keys, values)

【讨论】:

公平地说,OP 没有说“列表理解”,所以 d=k:v for k,v in zip(a, b) 可能符合条件。 (当然dict(zip(keys, values)) 我也会这样做。) @DSM 好点,添加到答案中。【参考方案3】:
dict(zip(list1, list2))

可能是最好的方法。不要使用推导式,这是一个愚蠢的要求。

【讨论】:

【参考方案4】:

好吧,如果你必须:

keys = ['one', 'two', 'three']
values = [1,2,3]
d = a:b for a,b in zip(keys,values)

但说真的,请使用dict(zip(keys, values))

【讨论】:

以上是关于Python。将 2 个列表转换为一个字典对象 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python dict 自动将列表类型值转换为简单对象

Python:将字典列表转换为 json

将列表转换为字典,然后通过键值将多个字典合并为一个字典

python将列表转换成字典应用场景

在python中,列表,字典的相互转换?

Python将列表转换为具有多个键值的字典[关闭]