【问题标题】:Create dictionary of dictionaries of lists in one line在一行中创建列表字典的字典
【发布时间】:2020-01-31 16:33:19
【问题描述】:

有什么方法可以在一行中创建列表字典的字典吗?

names = ['alex', 'ben', 'coby']
age = ['20', '30', '40', '50']

name_age = {n: {} for n in names}
for n in names:
    name_age[n] = {a: {} for a in age}

下面这样的嵌套不起作用。

name_age = {n: {{a: {} for a in age}} for n in names}

【问题讨论】:

  • name_age = {n: {a: {} for a in age} for n in names}
  • 正确答案,请留言。自己试过了,但一定是搞错了。

标签: python dictionary nested


【解决方案1】:

基于两个列表构建字典的最快方法是使用zip 同时迭代它们。这将起作用:

names = ['alex', 'ben', 'coby']
age = ['20', '30', '40', '50']

name_age = dict(zip(names, age))

print(name_age)

>>> {'alex': '40', 'ben': '50', 'coby': '20'}

【讨论】:

    【解决方案2】:
    names = ['alex', 'ben', 'coby']
    ages = ['20', '30', '40', '50']
    
    result =  { names[index]:ages[index] for index in range(len(names)) }
    
    print(result)
    

    {'alex': '20', 'ben': '30', 'coby': '40'}

    【讨论】:

      猜你喜欢
      • 2017-05-05
      • 2018-11-06
      • 1970-01-01
      • 2020-08-31
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      相关资源
      最近更新 更多