Я делаю некоторые операции набора в Python, и я заметил что-то странное.
>> set([1,2,3]) | set([2,3,4])
set([1, 2, 3, 4])
>> set().union(*[[1,2,3], [2,3,4]])
set([1, 2, 3, 4])
Это хорошее, ожидаемое поведение - но с пересечением:
>> set([1,2,3]) & set([2,3,4])
set([2, 3])
>> set().intersection(*[[1,2,3], [2,3,4]])
set([])
Я теряю рассудок здесь? Почему функция set.intersection() не работает, как я ожидал?
Как я могу выполнить пересечение множества множеств, как это было с объединением (если [[1,2,3], [2,3,4]]
имел целую группу больше списков)? Каким будет "питонический" способ?