Сравнение значений в одном словаре со значениями из другого словаря в Python - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть два словаря:

dict1 = {'Canada' : 2.5, 'UK' : 3.7, 'USA' : 9.0}
dict2 = {'a' : 7, 'b' : 2}

Я хочу иметь возможность перебирать значения в dict1, используя значения в dict2, чтобы определить, какие элементы больше. Выход должен быть:

a is larger than Canada.
a is larger than UK.

(поскольку 7, очевидно, больше, чем 2,5 и 3,7). Я надеюсь, что это имеет смысл!

Пока я написал:

for k, v in dict2.items():
    for i, j in dict2:
        print (k, " is larger than ", i)

Я получаю эту ошибку: ValueError: too many values to unpack (expected 2).

Любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

У вас правильная идея. Итерируйте предметы в обоих диктовках и сравните

>>> dict1 = {'Canada' : 2.5, 'UK' : 3.7, 'USA' : 9.0}
>>> dict2 = {'a' : 7, 'b' : 2}
>>> 
>>> 
>>> for kd2, vd2 in dict2.items():
...     for kd1, vd1 in dict1.items():
...         if vd2 > vd1:
...             print(kd2, "is larger than", kd1)
... 
a is larger than Canada
a is larger than UK
0 голосов
/ 30 апреля 2018

Ошибка, которую вы получаете, просто из-за того, что вы пропускаете .items() в итерации по dict2. Вы просто перебираете ключи, поэтому он не знает, как обращаться с i, j.

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