我有一个字典,其中每个值都是一个列表,就像这样:
dictA = {1:['a','b','c'],2:['d','e']}
很不幸,我无法更改这个结构来解决我的问题。
我想把所有列表的条目收集到一个单一的列表中,如下所示:
['a','b','c','d','e']
此外,我只想在if块中执行一次。由于我只想执行一次,所以不想将其存储到中间变量中,因此自然而然地使用列表推导式是正确的选择。但是怎么做呢?我的第一个猜测是:
[dictA[key] for key in dictA.keys()]
产量,
[['a','b','c'],['d','e']]
这并不起作用,因为
'a' in [['a','b','c'],['d','e']]
产生`False`。我尝试过的所有其他方法都使用了某种非法语法。如何执行这样的推导?
zip()
吗?因此,您的解决方案将是any('a' in lst for lst in zip(dictA.itervalues(),dictB.itervalues())
。 - wnnmawitertools.chain()
:any('a' in lst for lst in chain(dictA.itervalues(), dictB.itervalues())
。zip()
的功能完全不同。 - Martijn Pieters