>>>> 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]