【问题标题】:Python: make a dict using two listPython:使用两个列表制作字典
【发布时间】:2020-03-21 05:32:19
【问题描述】:

如何使用 python 使用两个列表制作字典

list_one_keys = ['key1', 'key2', 'key3', 'key4']

嵌套列表:

list_two_values = [['a1var1', 'a1var2', 'a1var3', 'a1var4'], ['a2var1', 'a2var2', 'a2var3', 'a2var4']]

想要的结果是一个 python dict:

thisdict = {
  "dict1"{

  "key1": "a1var1",
  "key2": "a1var2",
  "key3": "a1var3",
  "key4": "a1var4"
},
"dict2":{
  "key1": "a2var1",
  "key2": "a2var2",
  "key3": "a2var3",
  "key4": "a2var4"
}


}

谢谢。

【问题讨论】:

    标签: python list dictionary nested


    【解决方案1】:

    你可以试试zipenumeratedict的组合:

    result = {'dict{}'.format(index+1):dict(zip(list_one_keys, val)) 
                                  for index, val in enumerate(list_two_values)}
    

    输出:

    {'dict1': {'key1': 'a1var1',
      'key2': 'a1var2',
      'key3': 'a1var3',
      'key4': 'a1var4'},
     'dict2': {'key1': 'a2var1',
      'key2': 'a2var2',
      'key3': 'a2var3',
      'key4': 'a2var4'}}
    

    【讨论】:

      【解决方案2】:
      list_one_keys = ['key1', 'key2', 'key3', 'key4']
      list_two_values = [['a1var1', 'a1var2', 'a1var3', 'a1var4'], ['a2var1', 'a2var2', 'a2var3', 'a2var4']]
      
      d = {}
      for i, sub_list in enumerate(list_two_values):
          entry_name = "dict" + str(i+ 1)
          for x, y in zip(list_one_keys, sub_list):
              if entry_name not in d:
                  d[entry_name] = {}
              d[entry_name].update({x: y})
      
      print(d)
      

      小解释:

      1. 使用 list_two_values 子列表迭代 enumerate
      2. 使用zip 对每个子列表进行并行迭代(从步骤 1) 和list_one_keys

      输出:

      {'dict1': {'key1': 'a1var1', 'key2': 'a1var2', 'key3': 'a1var3', 'key4': 'a1var4'}, 'dict2': {'key1': 'a2var1', 'key2': 'a2var2', 'key3': 'a2var3', 'key4': 'a2var4'}}
      

      【讨论】:

      • 哇!非常感谢!我对速度印象深刻。
      猜你喜欢
      • 1970-01-01
      • 2022-11-30
      • 2013-11-02
      • 1970-01-01
      • 2013-02-17
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多