我有下面的代码,它返回一个字典,该字典已使用列表和理解进行子集化,因此产品列表仅包含键是列表中元素的对:
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
上的列表理解和在这个循环中创建的列表来获得上面的第二个输出,但是我希望我可以通过理解来完成,因为这将是一个更优雅的解决方案。你知道吗
有什么想法吗?你知道吗
是的,你可以通过理解和过滤来做到这一点:
相关问题 更多 >
编程相关推荐