я следующий код, который возвращает словарь, который был подмножество с помощью списка и понимания, так что список продуктов содержит только пары, где ключ является элементом в списке:Как обратить вспять это понимание?
import collections
mydict = {'apple': 1, 'pear': 2, 'orange': 3}
mylist = ['apple', 'pear', 'orange', 'banana', 'grape']
test1 = dict((x, mydict[x]) for x in mylist if x in mydict)
print test1
Это дает выход из:
{'orange': 3, 'pear': 2, 'apple': 1}
что я теперь хочу и не могу понять, как сделать это понимание, что даст мне новый список всех элементов в mylist
, которые не является ключевым в mydict
. Выходной сигнал этого должен выглядеть следующим образом:
['banana', 'grape']
Я понимаю, что я мог бы сделать это, используя for
петли и .iteritems()
, чтобы получить все ключи в список, а затем использовать список понимание на mylist
и список, созданный в этом цикле чтобы получить второй вывод выше, но я надеялся, что смогу сделать это только с пониманием, поскольку это будет более элегантное решение.
Любые идеи?
Вам просто нужно использовать 'не в' не так ли? – Hammerite
Кстати, вместо того, чтобы создавать генератор кортежей, а затем передать это 'dict()', вы можете сделать понимание слова непосредственно с помощью 'test1 = {x: mydict [x] для x в ...'. – TigerhawkT3