Простой Python. Современный стиль программирования (Любанович) - страница 48

>>>> a <= b

>False

>>>> a.issubset(b)

>False

Добавление сливок в коктейль «черный русский» сделает его «белым русским», поэтому wruss является подмножеством bruss:

>>>> bruss <= wruss

>True

Является ли любое множество подмножеством самого себя? Ага.

>>>> a <= a

>True

>>>> a.issubset(a)

>True

Для того чтобы стать собственным подмножеством, второе множество должно содержать все члены первого и несколько других. Определяется это с помощью оператора <:

>>>> a < b

>False

>>>> a < a

>False

>>>> bruss < wruss

>True

Множество множеств противоположно подмножеству (все члены второго множества являются также членами первого). Для определения этого используется оператор >= или функция issuperset():

>>>> a >= b

>False

>>>> a.issuperset(b)

>False

>>>> wruss >= bruss

>True

Любое множество является множеством множеств самого себя:

>>>> a >= a

>True

>>>> a.issuperset(a)

>True

И наконец, вы можете найти собственное множество множеств (первое множество содержит все члены второго и несколько других) с помощью оператора >:

>>>> a > b

>False

>>>> wruss > bruss

>True

Множество не может быть собственным множеством множеств самого себя:

>>>> a > a

>False

Сравнение структур данных

Напомню, список создается с помощью квадратных скобок ([]), кортеж — с помощью запятых, а словарь — с помощью фигурных скобок ({}). Во всех случаях вы получаете доступ к отдельному элементу с помощью квадратных скобок:

>>>> marx_list = ['Groucho', 'Chico', 'Harpo']

>>>> marx_tuple = 'Groucho', 'Chico', 'Harpo'

>>>> marx_dict = {'Groucho': 'banjo', 'Chico': 'piano', 'Harpo': 'harp'}

>>>> marx_list[2]

>'Harpo'

>>>> marx_tuple[2]

>'Harpo'

>>>> marx_dict['Harpo']

>'harp'

Для списка и кортежа значение, находящееся в квадратных скобках, является целочисленным смещением. Для словаря же оно является ключом. Для всех троих результатом будет значение.

Создание крупных структур данных

Ранее мы работали с простыми булевыми значениями, числами и строками. Теперь же мы работаем со списками, кортежами, множествами и словарями. Вы можете объединить эти встроенные структуры данных в собственные структуры, более крупные и сложные. Начнем с трех разных списков:

>>>> marxes = ['Groucho', 'Chico', 'Harpo']

>>>> pythons = ['Chapman', 'Cleese', 'Gilliam', 'Jones', 'Palin']

>>>> stooges = ['Moe', 'Curly', 'Larry']

Мы можем создать кортеж, который содержит в качестве элементов каждый из этих списков:

>>>> tuple_of_lists = marxes, pythons, stooges

>>>> tuple_of_lists

>(['Groucho', 'Chico', 'Harpo'],

>['Chapman', 'Cleese', 'Gilliam', 'Jones', 'Palin'],

>['Moe', 'Curly', 'Larry'])

Можем также создать список, который содержит три списка:

>>>> list_of_lists = [marxes, pythons, stooges]