我想了解为什么这是一个有效的语法:
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
为什么需要将所有联盟放入正常的大括号
()
谢谢。
答案 0 :(得分:0)
第二个是无效的,因为它错过了set(classes['PE']
的关闭。你不需要外括号,你只需要正确地关闭内部括号。
附注:在性能方面,您可能只需将第一项明确转换为set
,然后使用intersection
(需要任意数量的可迭代的参数)在单个Python函数调用中完成剩下的工作:
common = set(classes['Biology']).intersection(classes['Math'], classes['PE'], classes['Social Sciences'], classes['Chemistry'])