Синтаксис объединения нескольких множеств - PullRequest
0 голосов
/ 31 мая 2018

Я хотел бы понять, почему это правильный синтаксис:

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 голосов
/ 31 мая 2018

Второй недействителен, потому что ему не хватает близкого парня на set(classes['PE'].Вам не нужны внешние скобки, вам просто нужно правильно закрыть внутренние скобки.

Примечание: с точки зрения производительности вы, скорее всего, сэкономите немного, просто явно преобразовав первый элемент в set, затем с помощью intersection (который принимает произвольное количество повторяемых аргументов) для выполнения остальной части работы в одном вызове функции Python:

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