У меня есть словарь, где значения - это список не уникальных значений и связанных с различными ключами.return key under condition
mydict = {120: ["foo", "bar", "cat"], 125: ["dog", "foo", "bar"]}
У меня есть набор значений в словаре
myset = set(['foo', 'bar', 'cat', 'dog'])
Я хочу вернуться и напечатать только один ключ для каждого значения в словаре и с условием, что этот ключ является наибольшим числом которому соответствует значение в словаре. Для того, чтобы уточнить, что я имею в виду, что это результат я хотел бы достичь:
120: "cat"
125: "dog"
125: 'foo'
125: 'bar'
Так каждое значение печатается только один раз и только с его крупнейшим соответствующим числом. Я был в состоянии напечатать каждое значение настоящего в наборе вместе с ключом, но интересно, как построить в условном аспекте:
result = ''
for i in set:
result += "%s\t%s" % (i, [key for key in dict if i in dict[key]])
Ваше использование 'dict' имеет неправильный синтаксис. Просто сделайте 'mydict = {120: [" foo "," bar "," cat "], 125: [" dog "," foo "," bar "]}'. –
Используйте 'max ([ключ для ключа в dict, если i in dict [key]])', чтобы получить самый большой ключ? – WKPlus
Работы. спасибо - я не могу поверить, что это было так просто. – oaklander114