>>> for name, contents in drinks.items():
... if 'vodka' in contents and not contents & {'vermouth', 'cream'}:
... print(name)
...
screwdriver
black russian
Сохраним множества ингредиентов для этих двух напитков в переменных,
чтобы нам не пришлось набирать много текста в дальнейших примерах:
>>> bruss = drinks['black russian']
>>> wruss = drinks['white russian']
В следующих примерах демонстрируется использование операторов мно-
жеств. В одних из них демонстрируется применение особой пунктуации, в дру-
гих — особых функций, в третьих — и того и другого. Мы будем использовать
тестовые множества а (содержит элементы 1 и 2) и b (содержит элементы 2
и 3):
>>> a = {1, 2}
>>> b = {2, 3}
Пересечениемножеств (члены обоих множеств) можно получить с помощью
особого пунктуационного символа & или функции множества intersection(), как
показано здесь:
>>> a & b
{2}
>>> a.intersection(b)
{2}
Множества
95
В этом фрагменте используются сохраненные нами переменные:
>>> bruss & wruss
{'kahlua', 'vodka'}
В этом примере мы получаем объединение (члены обоих множеств), используя
оператор | или функцию множества union():
>>> a | b
{1, 2, 3}
>>> a.union(b)
{1, 2, 3}
Алкогольная версия:
>>> bruss | wruss
{'cream', 'kahlua', 'vodka'}
Разность множеств (члены только первого множества, но не второго) можно
получить с помощью символа – или функции difference():
>>> a — b
{1}
>>> a.difference(b)
{1}
>>> bruss — wruss
set()
>>> wruss — bruss
{'cream'}
Самыми распространенными операциями с множествами являются объеди-