我正在阅读下面的python代码。但我无法理解lambda x, y: x | y
的意思。 (set(list(chain.from_iterable(s)) + q + a) for s, q, a in data))
看起来很复杂,但它只是一个像['to', 'the', 'who']
这样的词汇表。
# ex) data[0]
# ([[s1], [s2]], [q], [a]])
# ([['mary', 'moved', 'to', 'the', 'bathroom'], ['john', 'went', 'to', 'the', 'hallway']], ['where', 'is', 'mary'], ['bathroom'])
vocab = sorted(reduce(lambda x, y: x | y, (set(list(chain.from_iterable(s)) + q + a) for s, q, a in data)))
https://github.com/domluna/memn2n/blob/master/single.py#L36
可以肯定的是,我打印了x
和y
。但我不知道这些是什么。 x
和x|y
的含义是什么?
reduce(lambda x, y: print(x, type(x), "---", y, type(y)), (set(list(chain.from_iterable(s)) + q + a) for s, q, a in data))
# None <class 'NoneType'> --- {'where', 'kitchen', 'bathroom', 'the', 'sandra', 'travelled', 'daniel', 'bedroom', 'back', 'went', 'journeyed', 'office', 'moved', 'hallway', 'garden', 'is', 'john', 'to'} <class 'set'>