Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 67

не смешанной со сливками или вермутом:

>>> 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'}

Самыми распространенными операциями с множествами являются объеди-