Найти - Пользователи
Полная версия: Пересечение множеств
Начало » Python для новичков » Пересечение множеств
1
_vladimir_
Всем здравствуйте!
Вопрос следующий. Имеется словарь множеств:

Q = {}
Q = set()
Q = set()
Q = set()
…..

требуется написать одной строкой (что-то наподобие list comprehensions) код для нахождение пересечения всех множеств. Это возможно? Ибо первый пришедший в голову способ занимает аж 6 строк
PooH
reduce(lambda x, y: x.intersection(y), Q.values()[1:],Q.values()[0]) if Q else set()
PS: правда мне непонятно что должно быть результатом если в словаре один элемент
_vladimir_
спасибо – это действительно просто и понятно
Dimka665
можно и так:
reduce(lambda x, y: x & y, Q.values()) if Q else set()
_vladimir_
действительно этот вариант короче,
если я ошибаюсь, то поправьте:
1) выражения x & y и x.intersection(y) – это одно и то же
2) второй вариант (хотя это мелочи), но на одно действие будет выполнять больше – пересечение элемента словаря с самим собой (когда x = y).
Dimka665
1) Да
2) Нет
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB