Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dictionary 将一个字典的值合并为另一个字典的键_Dictionary_Merge - Fatal编程技术网

Dictionary 将一个字典的值合并为另一个字典的键

Dictionary 将一个字典的值合并为另一个字典的键,dictionary,merge,Dictionary,Merge,我有两本字典: StatePops={'AL':4887871, 'AK':737438, 'AZ':7278717, 'AR':3013825} StateNames={'AL':'Alabama', 'AK':'Alaska', 'AZ':'Arizona', 'AR':'Arkansas'} 我正在尝试合并,因此StateNames的值是StatePops的关键 前 我还必须显示人口超过400万的州的名称 感谢您的帮助 您尚未指定要用哪种编程语言解决此问题 尽管如此,这里还是有一个Py

我有两本字典:

StatePops={'AL':4887871, 'AK':737438, 'AZ':7278717, 'AR':3013825}

StateNames={'AL':'Alabama', 'AK':'Alaska', 'AZ':'Arizona', 'AR':'Arkansas'}
我正在尝试合并,因此StateNames的值是StatePops的关键

我还必须显示人口超过400万的州的名称


感谢您的帮助

您尚未指定要用哪种编程语言解决此问题

尽管如此,这里还是有一个Python解决方案

state_pops = {
    'AL': 4887871,
    'AK': 737438,
    'AZ':7278717,
    'AR':3013825
}

state_names = {
    'AL':'Alabama',
    'AK':'Alaska',
    'AZ':'Arizona',
    'AR':'Arkansas'
}

states = dict([([state_names[k],state_pops[k]]) for k in state_pops])
final = {k:v for k, v in states.items() if v > 4000000}
print(states)
print(final)
首先,您可以使用states变量中预定义的dictpython函数合并两个字典。这里,k是一个迭代器,它被用作州名称和州POP的索引。 然后,将过滤后的字典存储在final中,其中使用states.items()访问states中的键和值,并使用str函数将其转换为字符串

可能有更简单的解决方案,但这是我所能优化的问题


希望这有帮助。

在Python中无法更改字典键。您需要将修改后的键值对添加到字典中,然后删除旧的键值,或者可以创建新的字典。我会选择第二个选项,即创建一个新词典

myDict = {}
for i in StatePops:
    myDict.update({StateNames[i] : StatePops[i]})
这将
myDict
输出为

{'Alabama': 4887871, 'Alaska': 737438, 'Arizona': 7278717, 'Arkansas': 3013825}
{'Alabama': 4887871, 'Alaska': 737438, 'Arizona': 7278717, 'Arkansas': 3013825}