几组联合的语法

时间:2018-05-31 13:06:45

标签: python python-3.x set set-union

我想了解为什么这是一个有效的语法:

common = (set(classes['Biology']) & set(classes['Math']) & set(classes['PE']) & set(classes['Social Sciences']) & set(classes['Chemistry']))

但不是这样:

common = set(classes['Biology']) & set(classes['Math']) & set(classes['PE'] & set(classes['Social Sciences']) & set(classes['Chemistry'])

TL; DR

为什么需要将所有联盟放入正常的大括号

  

()

谢谢。

1 个答案:

答案 0 :(得分:0)

第二个是无效的,因为它错过了set(classes['PE']的关闭。你不需要外括号,你只需要正确地关闭内部括号。

附注:在性能方面,您可能只需将第一项明确转换为set,然后使用intersection(需要任意数量的可迭代的参数)在单个Python函数调用中完成剩下的工作:

common = set(classes['Biology']).intersection(classes['Math'], classes['PE'], classes['Social Sciences'], classes['Chemistry'])