【问题标题】:Merging Value of one dictionary as key of another将一个字典的值合并为另一个字典的键
【发布时间】:2020-02-05 04:03:38
【问题描述】:

我有 2 个字典:

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

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

我正在尝试合并,因此 StateNames 的值是 StatePops 的键。

例如。

{'Alabama': 4887871, 'Alaska': 737438, ...

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

感谢任何帮助!!!

【问题讨论】:

    标签: dictionary merge


    【解决方案1】:

    您尚未指定要解决此问题的编程语言。

    不过,这里有一个 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 变量中预定义的 dict python 函数合并。这里,k 是一个迭代器,它被用作 state_names 和 state_pops 的索引。 然后,将过滤后的字典存储在 final 中,其中 states.items() 用于访问状态中的键和值,并使用 str 将其类型转换为字符串功能。

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

      myDict = {}
      for i in StatePops:
          myDict.update({StateNames[i] : StatePops[i]})
      

      这会将myDict 输出为

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

      【讨论】:

        猜你喜欢
        • 2021-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-23
        • 2021-03-30
        相关资源
        最近更新 更多