Python 多集并的语法

Python 多集并的语法,python,python-3.x,set,set-union,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']) & s

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

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;博士

为什么需要把所有的工会都放在正常的支架上

()


谢谢。

第二个无效,因为它缺少
集合(类['PE']
上的关闭参数。您不需要外括号,只需要正确关闭内括号

旁注:就性能而言,您可能只需要显式地将第一项转换为
,然后使用
交集
(它接受任意数量的iterable参数)在单个Python函数调用中完成其余工作,从而节省一点成本:

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

哦,我的天啊。我想我已经累了。我把这两个代码涂红了5次,除了外括号外,我看到它们都是一样的……我只是从一个文本文件中复制了它,所以语法高亮显示不可用…@boldi:建议:始终使用语法高亮显示文本编辑器。即使在Windows上,像记事本++这样的轻量级东西也支持语法高亮显示不需要使用成熟的IDE就可以使用HTG。省去了很多麻烦。在Linux上,通过较小的配置,您可能至少有三个语法突出显示编辑器可用,如果没有更多的话。:-)是的。我知道语法突出显示的好处。这只是一个例外情况,因为我在一台不是我的电脑上,同时想学习一些Python。