Объединение значения одного словаря как ключа другого - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть 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, ...

Мне также нужно отобразить название штатов с населением более 4 миллионов человек.

Любая помощь приветствуется !!!

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Ключи словаря нельзя изменить в Python. Вам нужно либо добавить измененную пару ключ-значение в словарь, а затем удалить старый ключ, либо вы можете создать новый словарь. Я бы выбрал второй вариант, то есть создание нового словаря.

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

Это выводит myDict как

{'Alabama': 4887871, 'Alaska': 737438, 'Arizona': 7278717, 'Arkansas': 3013825}
0 голосов
/ 05 февраля 2020

Вы не указали, на каком языке программирования вы хотите решить эту проблему.

Тем не менее, вот решение в 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)

Во-первых, вы можете объединить два словаря с предопределенной функцией dict python в переменной состояний как таковой. Здесь k является итератором, и он используется в качестве индекса для имен_состояний и состояний_попс. Затем сохраните отфильтрованный словарь в final, где states.items () используется для доступа к ключам и значениям в состояниях, и приведите его как строку с функцией str .

Могут быть более простые решения, но это насколько я могу оптимизировать проблему.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...