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 个列表转换为一个字典对象 [重复]的主要内容,如果未能解决你的问题,请参考以下文章