如何从嵌套词典中提取词典?

2024-06-09 03:32:03 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一本嵌套字典

x = {'town1': {'thames': 'moderate', 'bourton': 'low'},
     'town2': {'river cam': 'high'},
     'town3': {'dickler': 'moderate', 'mil': 'severe'}}

我想提取城镇名称和风险等级(高、中、低或严重)

期望输出:

y = {'town1': ['moderate', 'low'],
     'town2': ['high'],
     'town3': ['moderate', 'severe']}

这是我的代码:

d = []
for k,v in x.items():
    d.append((k,(v)))
y=[]
for i in range(len(d)):
    for k,v in d[i][1].items():
        y.append((d[i][0],v))
print(y)

Tags: infor字典itemslowhighappendriver
3条回答
res = {k: list(v.values()) for k, v in x.items()}

使用list comprehensiondictionary comprehension内:

x = {'town1': {'thames': 'moderate', 'bourton': 'low'}, 'town2': {'river cam': 'high'}, 'town3': {'dickler': 'moderate', 'mil': 'severe'}}
y = {k: [v for k, v in v.items()] for k, v in x.items()}
print(y)
# {'town1': ['moderate', 'low'], 'town2': ['high'], 'town3': ['moderate', 'severe']}

单向:

y = {a[0]: list(a[1].values()) for a in x.items()}

结果将是:

{
    'town1': ['moderate', 'low'],
    'town2': ['high'],
    'town3': ['moderate', 'severe']
}

相关问题 更多 >