【发布时间】:2019-07-28 21:31:39
【问题描述】:
我有两个集合,想通过列表理解将差异添加到列表中。
使用一组效果很好:
diff = [x for x in a.difference(b)]
但是,当我尝试包含第二组 (b) 时,我已经收到来自 PyCharm 的警告,即 语法无效。
错误信息:
diff = [x,y for x in a.difference(b) for y in b.difference(a)]
^
SyntaxError: invalid syntax
下面是一个 Web 示例和我的输入的比较尝试,它在 diff 列表中创建我不想要的列表。
网页示例:my_list = [x * y for x in [20, 40, 60] for y in [2, 4, 6]]
diff = [[x,y] for x in a.difference(b) for y in b.difference(a)]
输出:[[9, 11], [9, 12], [5, 11], [5, 12]]
预期输出:[5,9,11,12]
用两个集合的集合差异创建一个列表的语法是什么?
【问题讨论】:
-
较短的
diff = list(a.difference(b)) -
你在
set.symmetric_difference之后吗? -
x,y之间的逗号导致语法错误 - Python 无法同时添加两个元素以进行列表理解。 -
o 可能是
list( a.difference(b) | b.difference(a) )或只是list( a ^ b )
标签: python python-3.x list-comprehension