用另一个dictorial替换dictorial中的键,并使用循环Python3

2024-05-15 17:01:37 发布

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

谢谢你的帮助

1。我有输入指令:

populations = {
    'US-AL': 4887871,
    'US-AK': 737438,
    'US-AZ': 7171646}

我还有另一个输入命令 符合美国国家和俄罗斯主体(这种符合并不重要,就像实例一样) 这是“另一个”格言:

usa_rus = {
    'US-AL': 'RU-MOW',
    'US-AK': 'RU-KDA',
    'US-AZ': 'RU-SVE'}

2。我的任务是替换人口数据中的。人口数据中的新应该是来自美国的。换言之,我想把美国各州的关键字替换为俄罗斯受试者,数字人口中的值保持不变

我想要的输出:

populations_new = {
    'RU-MOW': 4887871,
    'RU-KDA': 737438,
    'RU-SVE': 7171646}

3。不幸的是,我对python和创建字典没有深入的了解,我正在学习。 我只使用一种解决方案,但不清楚:

list = []

for keys,values in populations.items():
    list.append({usa_rus[keys]:values})

输出:

[{'RU-MOW': 4887871}, {'RU-KRS': 737438}, {'RU-SVE': 7171646}]

请帮助我制作我想要的输出:)


Tags: 数据rukeyslistazusak人口
3条回答
for k, v in usa_rus.items():     
    if k in populations:
        populations[v] = populations.pop(k)

首先,您不应该使用Python保留名称作为变量名,因此请重命名list变量

然后,您希望使用dict来获得与所需输出匹配的输出。对您的代码进行微小更改:

new_dict = dict()  # Or new_dict = {}
for key, value in usa_rus.items():
    new_dict[value] = populations[key]
def convert(populations, usa_rus):
    result = {}
    for key, value in populations.items():
        if key in usa_rus.keys():
            result[usa_rus[key]] = value
        else:
            result[key] = value
    return result
    
populations = {
    'US-AL': 4887871,
    'US-AK': 737438,
    'US-AZ': 7171646}
usa_rus = {
    'US-AL': 'RU-MOW',
    'US-AK': 'RU-KDA',
    'US-AZ': 'RU-SVE'}

convert(populations, usa_rus)
print (populations)

输出:

{'RU-MOW': 4887871, 'RU-KDA': 737438, 'RU-SVE': 7171646}

相关问题 更多 >