【问题标题】:Python. converting 2 lists into one dictionary object [duplicate]Python。将 2 个列表转换为一个字典对象 [重复]
【发布时间】: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));没有使用列表推导式的答案(尽管一个答案使用生成器表达式,只需更改两个字符即可转换为推导式。)这可能是一个愚蠢的要求,但这是一个要求,所以它不是重复的。

标签: python list dictionary list-comprehension


【解决方案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))

    【讨论】:

      猜你喜欢
      • 2017-12-04
      • 2016-09-14
      • 2019-11-18
      • 2018-06-05
      • 2019-05-10
      • 2018-01-06
      • 2016-01-07
      • 2018-08-25
      • 2021-06-28
      相关资源
      最近更新 更多