简体   繁体   English

如何从两个列表创建嵌套字典?

[英]How to create nested dictionary from two lists?

I have two lists: 我有两个清单:

ramp_versions=['RAMPS_1_6','RAMPS_10','RAMPS_11','RAMPS_7','RAMPS_8_9']
columns=['Version','Date','Total_Ramps','Virtual_Ramps','Real_Ramps','Real_Ramps_With_All_Measurements','Real_Ramps_Unsurveyable','Real_Ramps_Partial_With_999','Real_Ramps_Partial_WO_999','Real_Ramps_Partial_W_RAMP_WIDTH_<36_or_DWS_BAD']

I want to create a nested dictionary where each ramp_version is a key and the values are a dictionary where each value in the columns is a key 我想创建一个嵌套的字典,其中每个ramp_version是一个键,值是一个字典,其中列中的每个值是一个键

So this is what I am after: 所以这就是我的追求:

{'RAMPs_1_6': {'Version': "value",'Date': "value", 'Total_Ramps': "value", etc..},'RAMPS_10': {'Version': "value",'Date': "value", 'Total_Ramps': "value", etc..}

Use dict comprehension: 使用dict理解:

{ver: {col: "value" for col in columns} for ver in ramp_versions}

Output: 输出:

{'RAMPS_1_6': {'Version': 'value',
  'Date': 'value',
  'Total_Ramps': 'value',
  'Virtual_Ramps': 'value',
  'Real_Ramps': 'value',
  'Real_Ramps_With_All_Measurements': 'value',
  'Real_Ramps_Unsurveyable': 'value',
  'Real_Ramps_Partial_With_999': 'value',
  'Real_Ramps_Partial_WO_999': 'value',
  'Real_Ramps_Partial_W_RAMP_WIDTH_<36_or_DWS_BAD': 'value'},
 'RAMPS_10': {'Version': 'value',
  'Date': 'value',
  'Total_Ramps': 'value',
  'Virtual_Ramps': 'value',
  'Real_Ramps': 'value',
  'Real_Ramps_With_All_Measurements': 'value',
  'Real_Ramps_Unsurveyable': 'value',
  'Real_Ramps_Partial_With_999': 'value',
  'Real_Ramps_Partial_WO_999': 'value',
  'Real_Ramps_Partial_W_RAMP_WIDTH_<36_or_DWS_BAD': 'value'},
 'RAMPS_11': {'Version': 'value',
  'Date': 'value',
  'Total_Ramps': 'value',
  'Virtual_Ramps': 'value',
  'Real_Ramps': 'value',
  'Real_Ramps_With_All_Measurements': 'value',
  'Real_Ramps_Unsurveyable': 'value',
  'Real_Ramps_Partial_With_999': 'value',
  'Real_Ramps_Partial_WO_999': 'value',
  'Real_Ramps_Partial_W_RAMP_WIDTH_<36_or_DWS_BAD': 'value'},
 'RAMPS_7': {'Version': 'value',
  'Date': 'value',
  'Total_Ramps': 'value',
  'Virtual_Ramps': 'value',
  'Real_Ramps': 'value',
  'Real_Ramps_With_All_Measurements': 'value',
  'Real_Ramps_Unsurveyable': 'value',
  'Real_Ramps_Partial_With_999': 'value',
  'Real_Ramps_Partial_WO_999': 'value',
  'Real_Ramps_Partial_W_RAMP_WIDTH_<36_or_DWS_BAD': 'value'},
 'RAMPS_8_9': {'Version': 'value',
  'Date': 'value',
  'Total_Ramps': 'value',
  'Virtual_Ramps': 'value',
  'Real_Ramps': 'value',
  'Real_Ramps_With_All_Measurements': 'value',
  'Real_Ramps_Unsurveyable': 'value',
  'Real_Ramps_Partial_With_999': 'value',
  'Real_Ramps_Partial_WO_999': 'value',
  'Real_Ramps_Partial_W_RAMP_WIDTH_<36_or_DWS_BAD': 'value'}}

Another version: 另一个版本:

nest = {}
for r in ramp_versions:
   nest[r] = dict(zip(columns, ['val' for x in columns]))

Simply run a loop for keys and set values for that in an empty defined dictionary 只需为键运行循环并在空的已定义字典中为其设置值

see the following example: 请参见以下示例:

ramp_versions=['RAMPS_1_6','RAMPS_10','RAMPS_11','RAMPS_7','RAMPS_8_9']
columns=['Version','Date','Total_Ramps','Virtual_Ramps','Real_Ramps','Real_Ramps_With_All_Measurements','Real_Ramps_Unsurveyable','Real_Ramps_Partial_With_999','Real_Ramps_Partial_WO_999','Real_Ramps_Partial_W_RAMP_WIDTH_<36_or_DWS_BAD']

my_dict = {}

i=0
for ramp in ramp_versions:
    my_dict[ramp] = columns[i]
    i+=1

print(my_dict)
# print(my_dict.keys())
# print(my_dict.values())

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM