[{"data":1,"prerenderedAt":1868},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fpython\u002Fst19":386,"\u002Fblog\u002Fpython\u002Fst19-surround":1863},[4],{"title":5,"path":6,"stem":7,"children":8,"page":114},"Blog","\u002Fblog","blog",[9,115,184,329],{"title":10,"path":11,"stem":12,"children":13,"page":114},"Ege","\u002Fblog\u002Fege","blog\u002Fege",[14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94,98,102,106,110],{"title":15,"path":16,"stem":17},"ЕГЭ Задание 1","\u002Fblog\u002Fege\u002Ftask1","blog\u002Fege\u002Ftask1",{"title":19,"path":20,"stem":21},"ЕГЭ Задание 10","\u002Fblog\u002Fege\u002Ftask10","blog\u002Fege\u002Ftask10",{"title":23,"path":24,"stem":25},"ЕГЭ Задание 11","\u002Fblog\u002Fege\u002Ftask11","blog\u002Fege\u002Ftask11",{"title":27,"path":28,"stem":29},"ЕГЭ Задание 12","\u002Fblog\u002Fege\u002Ftask12","blog\u002Fege\u002Ftask12",{"title":31,"path":32,"stem":33},"ЕГЭ Задание 13","\u002Fblog\u002Fege\u002Ftask13","blog\u002Fege\u002Ftask13",{"title":35,"path":36,"stem":37},"ЕГЭ Задание 14","\u002Fblog\u002Fege\u002Ftask14","blog\u002Fege\u002Ftask14",{"title":39,"path":40,"stem":41},"ЕГЭ Задание 15","\u002Fblog\u002Fege\u002Ftask15","blog\u002Fege\u002Ftask15",{"title":43,"path":44,"stem":45},"ЕГЭ Задание 16","\u002Fblog\u002Fege\u002Ftask16","blog\u002Fege\u002Ftask16",{"title":47,"path":48,"stem":49},"ЕГЭ Задание 17","\u002Fblog\u002Fege\u002Ftask17","blog\u002Fege\u002Ftask17",{"title":51,"path":52,"stem":53},"ЕГЭ Задание 18","\u002Fblog\u002Fege\u002Ftask18","blog\u002Fege\u002Ftask18",{"title":55,"path":56,"stem":57},"ЕГЭ Задание 19, 20, 21","\u002Fblog\u002Fege\u002Ftask19_20_21","blog\u002Fege\u002Ftask19_20_21",{"title":59,"path":60,"stem":61},"ЕГЭ Задание 2","\u002Fblog\u002Fege\u002Ftask2","blog\u002Fege\u002Ftask2",{"title":63,"path":64,"stem":65},"ЕГЭ Задание 22","\u002Fblog\u002Fege\u002Ftask22","blog\u002Fege\u002Ftask22",{"title":67,"path":68,"stem":69},"ЕГЭ Задание 23","\u002Fblog\u002Fege\u002Ftask23","blog\u002Fege\u002Ftask23",{"title":71,"path":72,"stem":73},"ЕГЭ Задание 24","\u002Fblog\u002Fege\u002Ftask24","blog\u002Fege\u002Ftask24",{"title":75,"path":76,"stem":77},"ЕГЭ Задание 25","\u002Fblog\u002Fege\u002Ftask25","blog\u002Fege\u002Ftask25",{"title":79,"path":80,"stem":81},"ЕГЭ Задание 26","\u002Fblog\u002Fege\u002Ftask26","blog\u002Fege\u002Ftask26",{"title":83,"path":84,"stem":85},"ЕГЭ Задание 27","\u002Fblog\u002Fege\u002Ftask27","blog\u002Fege\u002Ftask27",{"title":87,"path":88,"stem":89},"ЕГЭ Задание 3","\u002Fblog\u002Fege\u002Ftask3","blog\u002Fege\u002Ftask3",{"title":91,"path":92,"stem":93},"ЕГЭ Задание 4","\u002Fblog\u002Fege\u002Ftask4","blog\u002Fege\u002Ftask4",{"title":95,"path":96,"stem":97},"ЕГЭ Задание 5","\u002Fblog\u002Fege\u002Ftask5","blog\u002Fege\u002Ftask5",{"title":99,"path":100,"stem":101},"ЕГЭ Задание 6","\u002Fblog\u002Fege\u002Ftask6","blog\u002Fege\u002Ftask6",{"title":103,"path":104,"stem":105},"ЕГЭ Задание 7","\u002Fblog\u002Fege\u002Ftask7","blog\u002Fege\u002Ftask7",{"title":107,"path":108,"stem":109},"ЕГЭ Задание 8","\u002Fblog\u002Fege\u002Ftask8","blog\u002Fege\u002Ftask8",{"title":111,"path":112,"stem":113},"ЕГЭ Задание 9","\u002Fblog\u002Fege\u002Ftask9","blog\u002Fege\u002Ftask9",false,{"title":116,"path":117,"stem":118,"children":119,"page":114},"Oge","\u002Fblog\u002Foge","blog\u002Foge",[120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180],{"title":121,"path":122,"stem":123},"ОГЭ Задание 1","\u002Fblog\u002Foge\u002Ftask1","blog\u002Foge\u002Ftask1",{"title":125,"path":126,"stem":127},"ОГЭ Задание 10","\u002Fblog\u002Foge\u002Ftask10","blog\u002Foge\u002Ftask10",{"title":129,"path":130,"stem":131},"ОГЭ Задание 11","\u002Fblog\u002Foge\u002Ftask11","blog\u002Foge\u002Ftask11",{"title":133,"path":134,"stem":135},"ОГЭ Задание 12","\u002Fblog\u002Foge\u002Ftask12","blog\u002Foge\u002Ftask12",{"title":137,"path":138,"stem":139},"ОГЭ Задание 13","\u002Fblog\u002Foge\u002Ftask13","blog\u002Foge\u002Ftask13",{"title":141,"path":142,"stem":143},"ОГЭ Задание 14","\u002Fblog\u002Foge\u002Ftask14","blog\u002Foge\u002Ftask14",{"title":145,"path":146,"stem":147},"ОГЭ Задание 15","\u002Fblog\u002Foge\u002Ftask15","blog\u002Foge\u002Ftask15",{"title":149,"path":150,"stem":151},"ОГЭ Задание 16","\u002Fblog\u002Foge\u002Ftask16","blog\u002Foge\u002Ftask16",{"title":153,"path":154,"stem":155},"ОГЭ Задание 2","\u002Fblog\u002Foge\u002Ftask2","blog\u002Foge\u002Ftask2",{"title":157,"path":158,"stem":159},"ОГЭ Задание 3","\u002Fblog\u002Foge\u002Ftask3","blog\u002Foge\u002Ftask3",{"title":161,"path":162,"stem":163},"ОГЭ Задание 4","\u002Fblog\u002Foge\u002Ftask4","blog\u002Foge\u002Ftask4",{"title":165,"path":166,"stem":167},"ОГЭ Задание 5","\u002Fblog\u002Foge\u002Ftask5","blog\u002Foge\u002Ftask5",{"title":169,"path":170,"stem":171},"ОГЭ Задание 6","\u002Fblog\u002Foge\u002Ftask6","blog\u002Foge\u002Ftask6",{"title":173,"path":174,"stem":175},"ОГЭ Задание 7","\u002Fblog\u002Foge\u002Ftask7","blog\u002Foge\u002Ftask7",{"title":177,"path":178,"stem":179},"ОГЭ Задание 8","\u002Fblog\u002Foge\u002Ftask8","blog\u002Foge\u002Ftask8",{"title":181,"path":182,"stem":183},"ОГЭ Задание 9","\u002Fblog\u002Foge\u002Ftask9","blog\u002Foge\u002Ftask9",{"title":185,"path":186,"stem":187,"children":188,"page":114},"Python","\u002Fblog\u002Fpython","blog\u002Fpython",[189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325],{"title":190,"path":191,"stem":192},"Знакомство с синтаксисом","\u002Fblog\u002Fpython\u002Fst1","blog\u002Fpython\u002Fst1",{"title":194,"path":195,"stem":196},"Отладка","\u002Fblog\u002Fpython\u002Fst10","blog\u002Fpython\u002Fst10",{"title":198,"path":199,"stem":200},"Модули и пакеты","\u002Fblog\u002Fpython\u002Fst11","blog\u002Fpython\u002Fst11",{"title":202,"path":203,"stem":204},"Кортежи","\u002Fblog\u002Fpython\u002Fst12","blog\u002Fpython\u002Fst12",{"title":206,"path":207,"stem":208},"Знакомство со списками","\u002Fblog\u002Fpython\u002Fst13","blog\u002Fpython\u002Fst13",{"title":210,"path":211,"stem":212},"Списки и циклы","\u002Fblog\u002Fpython\u002Fst14","blog\u002Fpython\u002Fst14",{"title":214,"path":215,"stem":216},"Использование списков ч.1","\u002Fblog\u002Fpython\u002Fst15","blog\u002Fpython\u002Fst15",{"title":218,"path":219,"stem":220},"Использование списков ч.2","\u002Fblog\u002Fpython\u002Fst16","blog\u002Fpython\u002Fst16",{"title":222,"path":223,"stem":224},"Использование списков ч.3","\u002Fblog\u002Fpython\u002Fst17","blog\u002Fpython\u002Fst17",{"title":226,"path":227,"stem":228},"Словари","\u002Fblog\u002Fpython\u002Fst18","blog\u002Fpython\u002Fst18",{"title":230,"path":231,"stem":232},"Множества","\u002Fblog\u002Fpython\u002Fst19","blog\u002Fpython\u002Fst19",{"title":234,"path":235,"stem":236},"Переменные","\u002Fblog\u002Fpython\u002Fst2","blog\u002Fpython\u002Fst2",{"title":238,"path":239,"stem":240},"Хеш-таблицы","\u002Fblog\u002Fpython\u002Fst20","blog\u002Fpython\u002Fst20",{"title":242,"path":243,"stem":244},"Решето Эратосфена","\u002Fblog\u002Fpython\u002Fst21","blog\u002Fpython\u002Fst21",{"title":246,"path":247,"stem":248},"Длинная арифметика","\u002Fblog\u002Fpython\u002Fst22","blog\u002Fpython\u002Fst22",{"title":250,"path":251,"stem":252},"Декораторы функций","\u002Fblog\u002Fpython\u002Fst23","blog\u002Fpython\u002Fst23",{"title":254,"path":255,"stem":256},"Знакомство с алгоритмами","\u002Fblog\u002Fpython\u002Fst24","blog\u002Fpython\u002Fst24",{"title":258,"path":259,"stem":260},"Бинарный поиск – примеры задач","\u002Fblog\u002Fpython\u002Fst25","blog\u002Fpython\u002Fst25",{"title":262,"path":263,"stem":264},"Сортировка выбором","\u002Fblog\u002Fpython\u002Fst26","blog\u002Fpython\u002Fst26",{"title":266,"path":267,"stem":268},"Рекурсия и стек","\u002Fblog\u002Fpython\u002Fst27","blog\u002Fpython\u002Fst27",{"title":270,"path":271,"stem":272},"Быстрая сортировка","\u002Fblog\u002Fpython\u002Fst28","blog\u002Fpython\u002Fst28",{"title":274,"path":275,"stem":276},"Поиск в ширину","\u002Fblog\u002Fpython\u002Fst29","blog\u002Fpython\u002Fst29",{"title":278,"path":279,"stem":280},"Работа со строками","\u002Fblog\u002Fpython\u002Fst3","blog\u002Fpython\u002Fst3",{"title":282,"path":283,"stem":284},"Поиск в глубину","\u002Fblog\u002Fpython\u002Fst30","blog\u002Fpython\u002Fst30",{"title":286,"path":287,"stem":288},"Сбалансированные деревья","\u002Fblog\u002Fpython\u002Fst31","blog\u002Fpython\u002Fst31",{"title":290,"path":291,"stem":292},"Алгоритм Дейкстры","\u002Fblog\u002Fpython\u002Fst32","blog\u002Fpython\u002Fst32",{"title":294,"path":295,"stem":296},"Жадные алгоритмы","\u002Fblog\u002Fpython\u002Fst33","blog\u002Fpython\u002Fst33",{"title":298,"path":299,"stem":300},"Динамическое программирование","\u002Fblog\u002Fpython\u002Fst34","blog\u002Fpython\u002Fst34",{"title":302,"path":303,"stem":304},"Алгоритм k ближайших соседей","\u002Fblog\u002Fpython\u002Fst35","blog\u002Fpython\u002Fst35",{"title":306,"path":307,"stem":308},"Типы данных","\u002Fblog\u002Fpython\u002Fst4","blog\u002Fpython\u002Fst4",{"title":310,"path":311,"stem":312},"О функциях","\u002Fblog\u002Fpython\u002Fst5","blog\u002Fpython\u002Fst5",{"title":314,"path":315,"stem":316},"Свойства и методы","\u002Fblog\u002Fpython\u002Fst6","blog\u002Fpython\u002Fst6",{"title":318,"path":319,"stem":320},"Определение функций","\u002Fblog\u002Fpython\u002Fst7","blog\u002Fpython\u002Fst7",{"title":322,"path":323,"stem":324},"Логика","\u002Fblog\u002Fpython\u002Fst8","blog\u002Fpython\u002Fst8",{"title":326,"path":327,"stem":328},"Циклы","\u002Fblog\u002Fpython\u002Fst9","blog\u002Fpython\u002Fst9",{"title":330,"path":331,"stem":332,"children":333,"page":114},"Toi","\u002Fblog\u002Ftoi","blog\u002Ftoi",[334,338,342,346,350,354,358,362,366,370,374,378,382],{"title":335,"path":336,"stem":337},"Информация и информационные процессы","\u002Fblog\u002Ftoi\u002Fst1","blog\u002Ftoi\u002Fst1",{"title":339,"path":340,"stem":341},"Электронные таблицы","\u002Fblog\u002Ftoi\u002Fst10","blog\u002Ftoi\u002Fst10",{"title":343,"path":344,"stem":345},"Система, её свойства и компоненты. Моделирование","\u002Fblog\u002Ftoi\u002Fst11","blog\u002Ftoi\u002Fst11",{"title":347,"path":348,"stem":349},"Представление информации в компьютере","\u002Fblog\u002Ftoi\u002Fst12","blog\u002Ftoi\u002Fst12",{"title":351,"path":352,"stem":353},"Средства информационно-коммуникационных технологий. Файловая система","\u002Fblog\u002Ftoi\u002Fst13","blog\u002Ftoi\u002Fst13",{"title":355,"path":356,"stem":357},"Комбинаторика","\u002Fblog\u002Ftoi\u002Fst2","blog\u002Ftoi\u002Fst2",{"title":359,"path":360,"stem":361},"Адресация в интернете","\u002Fblog\u002Ftoi\u002Fst3","blog\u002Ftoi\u002Fst3",{"title":363,"path":364,"stem":365},"Измерение количества информации","\u002Fblog\u002Ftoi\u002Fst4","blog\u002Ftoi\u002Fst4",{"title":367,"path":368,"stem":369},"Системы счисления","\u002Fblog\u002Ftoi\u002Fst5","blog\u002Ftoi\u002Fst5",{"title":371,"path":372,"stem":373},"Диаграммы Эйлера — Венна","\u002Fblog\u002Ftoi\u002Fst6","blog\u002Ftoi\u002Fst6",{"title":375,"path":376,"stem":377},"Условие Фано","\u002Fblog\u002Ftoi\u002Fst7","blog\u002Ftoi\u002Fst7",{"title":379,"path":380,"stem":381},"Теория графов","\u002Fblog\u002Ftoi\u002Fst8","blog\u002Ftoi\u002Fst8",{"title":383,"path":384,"stem":385},"Алгебра логики","\u002Fblog\u002Ftoi\u002Fst9","blog\u002Ftoi\u002Fst9",{"id":387,"title":230,"author":388,"body":393,"date":1853,"description":1854,"extension":1855,"image":1856,"meta":1857,"minRead":1858,"navigation":1859,"num":1860,"path":231,"seo":1861,"stem":232,"__hash__":1862},"python\u002Fblog\u002Fpython\u002Fst19.md",{"name":389,"avatar":390},"Штана Альберт Игоревич",{"src":391,"alt":392},"me.jpg","@ashtana",{"type":394,"value":395,"toc":1832},"minimark",[396,401,405,408,413,416,490,501,530,533,615,618,623,626,680,684,698,796,808,812,824,911,917,944,948,951,955,958,1009,1012,1146,1149,1153,1165,1171,1177,1231,1235,1245,1250,1256,1304,1308,1316,1377,1383,1387,1395,1400,1410,1458,1462,1473,1478,1487,1541,1545,1548,1552,1555,1592,1596,1603,1619,1625,1672,1677,1719,1724,1767,1772,1814,1825,1828],[397,398,400],"h2",{"id":399},"использование-множеств","Использование множеств",[402,403,404],"p",{},"Ключи словаря хранятся в нем в единственном экземпляре.\nДобавление нового значения по существующему ключу заменяет старое значение.\nХранение в единственном экземпляре полезно и в тех случаях, когда нам нужно хранить не столько значения по ключам, сколько именно сами ключи.",[402,406,407],{},"Например, нужно хранить список городов, которые посетил каждый пользователь.\nПри повторном посещении города дублировать запись не требуется.\nЭто позволяет сэкономить память и упростить поиск информации.\nТакже нам может понадобиться узнать, какие города посетили и Вася и Маша, а какие — только Маша или только Вася.\nПо сути, это хранения перечня элементов в неких наборах и сопоставления этих наборов между собой.\nВ математике для решения такого рода задач служат множества.\nВ свою очередь, Python предоставляет одноименную структуру данных — set.\nИтак, множества в Python — это неупорядоченные последовательности элементов, каждый из которых в множестве представлен ровно один раз.",[409,410,412],"h3",{"id":411},"создание-множеств-и-манипуляции-над-ними","Создание множеств и манипуляции над ними",[402,414,415],{},"Множество можно создать с помощью соответствующего литерала:",[417,418,423],"pre",{"className":419,"code":420,"language":421,"meta":422,"style":422},"language-python shiki shiki-themes github-light","s = {1, 2, 3, 2, 1}\ns  # {1, 2, 3}\ntype(s)  # \u003Cclass 'set'>\n","python","",[424,425,426,468,478],"code",{"__ignoreMap":422},[427,428,431,435,439,442,446,449,452,454,457,459,461,463,465],"span",{"class":429,"line":430},"line",1,[427,432,434],{"class":433},"sgsFI","s ",[427,436,438],{"class":437},"sD7c4","=",[427,440,441],{"class":433}," {",[427,443,445],{"class":444},"sYu0t","1",[427,447,448],{"class":433},", ",[427,450,451],{"class":444},"2",[427,453,448],{"class":433},[427,455,456],{"class":444},"3",[427,458,448],{"class":433},[427,460,451],{"class":444},[427,462,448],{"class":433},[427,464,445],{"class":444},[427,466,467],{"class":433},"}\n",[427,469,471,474],{"class":429,"line":470},2,[427,472,473],{"class":433},"s  ",[427,475,477],{"class":476},"sAwPA","# {1, 2, 3}\n",[427,479,481,484,487],{"class":429,"line":480},3,[427,482,483],{"class":444},"type",[427,485,486],{"class":433},"(s)  ",[427,488,489],{"class":476},"# \u003Cclass 'set'>\n",[402,491,492,493,496,497,500],{},"Литералы множеств записываются в фигурных скобках, как и литералы словарей.\nОднако внутри скобок через запятую перечисляются только элементы множества.\nЛитерал ",[424,494,495],{},"{}"," уже занят словарями, поэтому пустое множество создается вызовом функции ",[424,498,499],{},"set"," без аргументов:",[417,502,504],{"className":419,"code":503,"language":421,"meta":422,"style":422},"set()  # {}\ntype(set())  # \u003Cclass 'set'>\n",[424,505,506,516],{"__ignoreMap":422},[427,507,508,510,513],{"class":429,"line":430},[427,509,499],{"class":444},[427,511,512],{"class":433},"()  ",[427,514,515],{"class":476},"# {}\n",[427,517,518,520,523,525,528],{"class":429,"line":470},[427,519,483],{"class":444},[427,521,522],{"class":433},"(",[427,524,499],{"class":444},[427,526,527],{"class":433},"())  ",[427,529,489],{"class":476},[402,531,532],{},"Эту же функцию можно использовать, чтобы создать множество из элементов произвольного количества итераторов или итерируемых элементов:",[417,534,536],{"className":419,"code":535,"language":421,"meta":422,"style":422},"set(\"abracadabra\")  # {'c', 'd', 'a', 'r', 'b'}\nset([1, 2, 3, 2, 1])  # {1, 2, 3}\nset({\"a\": 1, \"b\": \"2\"})  # {'a', 'b'}\n",[424,537,538,554,584],{"__ignoreMap":422},[427,539,540,542,544,548,551],{"class":429,"line":430},[427,541,499],{"class":444},[427,543,522],{"class":433},[427,545,547],{"class":546},"sYBdl","\"abracadabra\"",[427,549,550],{"class":433},")  ",[427,552,553],{"class":476},"# {'c', 'd', 'a', 'r', 'b'}\n",[427,555,556,558,561,563,565,567,569,571,573,575,577,579,582],{"class":429,"line":470},[427,557,499],{"class":444},[427,559,560],{"class":433},"([",[427,562,445],{"class":444},[427,564,448],{"class":433},[427,566,451],{"class":444},[427,568,448],{"class":433},[427,570,456],{"class":444},[427,572,448],{"class":433},[427,574,451],{"class":444},[427,576,448],{"class":433},[427,578,445],{"class":444},[427,580,581],{"class":433},"])  ",[427,583,477],{"class":476},[427,585,586,588,591,594,597,599,601,604,606,609,612],{"class":429,"line":480},[427,587,499],{"class":444},[427,589,590],{"class":433},"({",[427,592,593],{"class":546},"\"a\"",[427,595,596],{"class":433},": ",[427,598,445],{"class":444},[427,600,448],{"class":433},[427,602,603],{"class":546},"\"b\"",[427,605,596],{"class":433},[427,607,608],{"class":546},"\"2\"",[427,610,611],{"class":433},"})  ",[427,613,614],{"class":476},"# {'a', 'b'}\n",[402,616,617],{},"Заметьте, что в множестве каждый уникальный элемент представлен ровно один раз, даже если в коллекции-источнике были повторы.",[619,620,622],"h4",{"id":621},"проверка-на-вхождение","Проверка на вхождение",[402,624,625],{},"Для некоторых задач нужно проверять, является ли некое значение элементом множества — другими словами, «входит ли оно в множество» или «принадлежит ли оно множеству».\nВ таких случаях нужно использовать оператор in:",[417,627,629],{"className":419,"code":628,"language":421,"meta":422,"style":422},"42 in set()  # False\n42 in set([42])  # True\n\"a\" in set(\"abracadabra\")  # True\n",[424,630,631,647,664],{"__ignoreMap":422},[427,632,633,636,639,642,644],{"class":429,"line":430},[427,634,635],{"class":444},"42",[427,637,638],{"class":437}," in",[427,640,641],{"class":444}," set",[427,643,512],{"class":433},[427,645,646],{"class":476},"# False\n",[427,648,649,651,653,655,657,659,661],{"class":429,"line":470},[427,650,635],{"class":444},[427,652,638],{"class":437},[427,654,641],{"class":444},[427,656,560],{"class":433},[427,658,635],{"class":444},[427,660,581],{"class":433},[427,662,663],{"class":476},"# True\n",[427,665,666,668,670,672,674,676,678],{"class":429,"line":480},[427,667,593],{"class":546},[427,669,638],{"class":437},[427,671,641],{"class":444},[427,673,522],{"class":433},[427,675,547],{"class":546},[427,677,550],{"class":433},[427,679,663],{"class":476},[409,681,683],{"id":682},"изменение-состава-элементов-множества","Изменение состава элементов множества",[402,685,686,687,448,690,693,694,697],{},"Множества в Python — изменяемые. Добавлять и удалять элементы из множества можно с помощью методов ",[424,688,689],{},"add",[424,691,692],{},"discard"," и ",[424,695,696],{},"remove",":",[417,699,701],{"className":419,"code":700,"language":421,"meta":422,"style":422},"s = set()\ns.add(1)\ns.add(2)\ns.add(2)\ns  # {1, 2}\ns.discard(1)\ns  # {2}\ns.discard(1)\ns  # {2}\ns.remove(1)  # KeyError: 1\n",[424,702,703,714,724,732,741,749,759,767,776,783],{"__ignoreMap":422},[427,704,705,707,709,711],{"class":429,"line":430},[427,706,434],{"class":433},[427,708,438],{"class":437},[427,710,641],{"class":444},[427,712,713],{"class":433},"()\n",[427,715,716,719,721],{"class":429,"line":470},[427,717,718],{"class":433},"s.add(",[427,720,445],{"class":444},[427,722,723],{"class":433},")\n",[427,725,726,728,730],{"class":429,"line":480},[427,727,718],{"class":433},[427,729,451],{"class":444},[427,731,723],{"class":433},[427,733,735,737,739],{"class":429,"line":734},4,[427,736,718],{"class":433},[427,738,451],{"class":444},[427,740,723],{"class":433},[427,742,744,746],{"class":429,"line":743},5,[427,745,473],{"class":433},[427,747,748],{"class":476},"# {1, 2}\n",[427,750,752,755,757],{"class":429,"line":751},6,[427,753,754],{"class":433},"s.discard(",[427,756,445],{"class":444},[427,758,723],{"class":433},[427,760,762,764],{"class":429,"line":761},7,[427,763,473],{"class":433},[427,765,766],{"class":476},"# {2}\n",[427,768,770,772,774],{"class":429,"line":769},8,[427,771,754],{"class":433},[427,773,445],{"class":444},[427,775,723],{"class":433},[427,777,779,781],{"class":429,"line":778},9,[427,780,473],{"class":433},[427,782,766],{"class":476},[427,784,786,789,791,793],{"class":429,"line":785},10,[427,787,788],{"class":433},"s.remove(",[427,790,445],{"class":444},[427,792,550],{"class":433},[427,794,795],{"class":476},"# KeyError: 1\n",[402,797,798,799,801,802,804,805,807],{},"При чтении кода в этом примере вы должны были заметить, что добавление лишних элементов с помощью ",[424,800,689],{}," и отбрасывание несуществующих элементов с помощью ",[424,803,692],{}," не приводят к ошибке.\nОднако вызов метода ",[424,806,696],{}," с несуществующим элементом приводит к ошибке.",[409,809,811],{"id":810},"копирование-и-очистка-множеств","Копирование и очистка множеств",[402,813,814,815,818,819,823],{},"Множества изменяемы, поэтому требуется сделать копию перед изменением оригинала.\nКак и словари, множества не поддерживают операцию получения среза.\nДля копирования приходится использовать метод ",[424,816,817],{},"copy",", создающий ",[820,821,822],"em",{},"поверхностную копию"," множества:",[417,825,827],{"className":419,"code":826,"language":421,"meta":422,"style":422},"s1 = {1, 2, 3}\ns2 = s1.copy()\ns1 is s2  # False\ns1 == s2  # True\ns2.add(4)\ns1 == s2  # False\ns2  # {1, 2, 3, 4}\n",[424,828,829,850,860,872,883,893,903],{"__ignoreMap":422},[427,830,831,834,836,838,840,842,844,846,848],{"class":429,"line":430},[427,832,833],{"class":433},"s1 ",[427,835,438],{"class":437},[427,837,441],{"class":433},[427,839,445],{"class":444},[427,841,448],{"class":433},[427,843,451],{"class":444},[427,845,448],{"class":433},[427,847,456],{"class":444},[427,849,467],{"class":433},[427,851,852,855,857],{"class":429,"line":470},[427,853,854],{"class":433},"s2 ",[427,856,438],{"class":437},[427,858,859],{"class":433}," s1.copy()\n",[427,861,862,864,867,870],{"class":429,"line":480},[427,863,833],{"class":433},[427,865,866],{"class":437},"is",[427,868,869],{"class":433}," s2  ",[427,871,646],{"class":476},[427,873,874,876,879,881],{"class":429,"line":734},[427,875,833],{"class":433},[427,877,878],{"class":437},"==",[427,880,869],{"class":433},[427,882,663],{"class":476},[427,884,885,888,891],{"class":429,"line":743},[427,886,887],{"class":433},"s2.add(",[427,889,890],{"class":444},"4",[427,892,723],{"class":433},[427,894,895,897,899,901],{"class":429,"line":751},[427,896,833],{"class":433},[427,898,878],{"class":437},[427,900,869],{"class":433},[427,902,646],{"class":476},[427,904,905,908],{"class":429,"line":761},[427,906,907],{"class":433},"s2  ",[427,909,910],{"class":476},"# {1, 2, 3, 4}\n",[402,912,913,914,697],{},"Очистить множество без пересоздания можно с помощью метода ",[424,915,916],{},"clear",[417,918,920],{"className":419,"code":919,"language":421,"meta":422,"style":422},"s = set(\"foobar\")\ns  # {'f', 'a', 'r', 'o', 'b'}\n",[424,921,922,937],{"__ignoreMap":422},[427,923,924,926,928,930,932,935],{"class":429,"line":430},[427,925,434],{"class":433},[427,927,438],{"class":437},[427,929,641],{"class":444},[427,931,522],{"class":433},[427,933,934],{"class":546},"\"foobar\"",[427,936,723],{"class":433},[427,938,939,941],{"class":429,"line":470},[427,940,473],{"class":433},[427,942,943],{"class":476},"# {'f', 'a', 'r', 'o', 'b'}\n",[409,945,947],{"id":946},"операции-над-множествами","Операции над множествами",[402,949,950],{},"Если при изучении множеств остановиться на создании и модифицировании, может показаться, что множества не сильно-то и отличаются от списков.\nКажется, что они просто позволяют быстрее проверить вхождение элемента, но при этом не поддерживают механизм срезов.",[619,952,954],{"id":953},"проверка-на-равенство","Проверка на равенство",[402,956,957],{},"Сопоставление множеств — это довольно мощный инструмент. Давайте проверим два множества на равенство:",[417,959,961],{"className":419,"code":960,"language":421,"meta":422,"style":422},"set([1, 2, 3, 2, 1]) == {3, 1, 2}  # True\n",[424,962,963],{"__ignoreMap":422},[427,964,965,967,969,971,973,975,977,979,981,983,985,987,990,992,994,996,998,1000,1002,1004,1007],{"class":429,"line":430},[427,966,499],{"class":444},[427,968,560],{"class":433},[427,970,445],{"class":444},[427,972,448],{"class":433},[427,974,451],{"class":444},[427,976,448],{"class":433},[427,978,456],{"class":444},[427,980,448],{"class":433},[427,982,451],{"class":444},[427,984,448],{"class":433},[427,986,445],{"class":444},[427,988,989],{"class":433},"]) ",[427,991,878],{"class":437},[427,993,441],{"class":433},[427,995,456],{"class":444},[427,997,448],{"class":433},[427,999,445],{"class":444},[427,1001,448],{"class":433},[427,1003,451],{"class":444},[427,1005,1006],{"class":433},"}  ",[427,1008,663],{"class":476},[402,1010,1011],{},"Можно подумать, что два множества равны, если каждый отдельный элемент одного множества содержится и во втором.\nЭта догадка близка к истине, но вспомним, что коллекции в Python хранят только ссылки на объекты.\nМножества равны, если ссылаются на одни и те же объекты.\nОдинаковые ссылки равны, но при этом могут быть равны и разные объекты.\nДело в том, что в Python есть специальный протокол проверки на равенство.\nБольшинство встроенных типов данных поддерживает этот протокол.\nМы можем проверять на равенство числа, строки, булевы значения. А еще можем приравнивать кортежи, списки, словари.\nЗдесь Python поступает очень разумно.\nЕсли вы приравняете две коллекции одного типа, то эти коллекции будут считаться равными, если их элементы попарно равны с точки зрения протокола.\nПосмотрите:",[417,1013,1015],{"className":419,"code":1014,"language":421,"meta":422,"style":422},"[1, 2, [\"foo\", \"bar\"]] == [1, 2, [\"foo\"] + [\"bar\"]]  # True\n(1, True, []) == (1, True, [])  # True\n{\"a\": 1, \"b\": 2} == {\"b\": 2, \"a\": 1}  # True\n",[424,1016,1017,1072,1102],{"__ignoreMap":422},[427,1018,1019,1022,1024,1026,1028,1031,1034,1036,1039,1042,1044,1047,1049,1051,1053,1055,1057,1060,1063,1065,1067,1070],{"class":429,"line":430},[427,1020,1021],{"class":433},"[",[427,1023,445],{"class":444},[427,1025,448],{"class":433},[427,1027,451],{"class":444},[427,1029,1030],{"class":433},", [",[427,1032,1033],{"class":546},"\"foo\"",[427,1035,448],{"class":433},[427,1037,1038],{"class":546},"\"bar\"",[427,1040,1041],{"class":433},"]] ",[427,1043,878],{"class":437},[427,1045,1046],{"class":433}," [",[427,1048,445],{"class":444},[427,1050,448],{"class":433},[427,1052,451],{"class":444},[427,1054,1030],{"class":433},[427,1056,1033],{"class":546},[427,1058,1059],{"class":433},"] ",[427,1061,1062],{"class":437},"+",[427,1064,1046],{"class":433},[427,1066,1038],{"class":546},[427,1068,1069],{"class":433},"]]  ",[427,1071,663],{"class":476},[427,1073,1074,1076,1078,1080,1083,1086,1088,1091,1093,1095,1097,1100],{"class":429,"line":470},[427,1075,522],{"class":433},[427,1077,445],{"class":444},[427,1079,448],{"class":433},[427,1081,1082],{"class":444},"True",[427,1084,1085],{"class":433},", []) ",[427,1087,878],{"class":437},[427,1089,1090],{"class":433}," (",[427,1092,445],{"class":444},[427,1094,448],{"class":433},[427,1096,1082],{"class":444},[427,1098,1099],{"class":433},", [])  ",[427,1101,663],{"class":476},[427,1103,1104,1107,1109,1111,1113,1115,1117,1119,1121,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144],{"class":429,"line":480},[427,1105,1106],{"class":433},"{",[427,1108,593],{"class":546},[427,1110,596],{"class":433},[427,1112,445],{"class":444},[427,1114,448],{"class":433},[427,1116,603],{"class":546},[427,1118,596],{"class":433},[427,1120,451],{"class":444},[427,1122,1123],{"class":433},"} ",[427,1125,878],{"class":437},[427,1127,441],{"class":433},[427,1129,603],{"class":546},[427,1131,596],{"class":433},[427,1133,451],{"class":444},[427,1135,448],{"class":433},[427,1137,593],{"class":546},[427,1139,596],{"class":433},[427,1141,445],{"class":444},[427,1143,1006],{"class":433},[427,1145,663],{"class":476},[402,1147,1148],{},"Словари равны, если порядок ключей разный — лишь бы были равны значения по соответствующим ключам и сами наборы ключей были одинаковыми.\nВот и множества равны, если содержат одинаковые наборы равных попарно элементов.",[619,1150,1152],{"id":1151},"объединение-множеств","Объединение множеств",[402,1154,1155,1156,1160,1161,1164],{},"По аналогии с множествами в математике, множества в Python поддерживают операцию ",[1157,1158,1159],"strong",{},"объединения"," ",[820,1162,1163],{},"(union)",".\nЭта операция не объединяет множества, а возвращает новый объект.\nЭтот объект — это такое множество, которое содержит все элементы, содержащиеся хотя бы в одном из оригинальных множеств.\nПо смыслу объединение похоже на операцию \"ИЛИ\" из булевой логики: элемент будет присутствовать в объединении, если он присутствует в первом исходном множестве ИЛИ во втором.\nТак это выглядит на схеме:",[402,1166,1167],{},[1168,1169],"img",{"alt":1152,"src":1170},"\u002Fimages\u002Fblog\u002Fpython\u002Fst19\u002Fimg1.webp",[402,1172,1173,1174,697],{},"Для объединения множеств в Python используется оператор ",[424,1175,1176],{},"|",[417,1178,1180],{"className":419,"code":1179,"language":421,"meta":422,"style":422},"visited_by_masha = {\"Paris\", \"London\"}\nvisited_by_kolya = {\"Moscow\", \"Paris\"}\nvisited_by_kolya | visited_by_masha  # {'London', 'Moscow', 'Paris'}\n",[424,1181,1182,1201,1219],{"__ignoreMap":422},[427,1183,1184,1187,1189,1191,1194,1196,1199],{"class":429,"line":430},[427,1185,1186],{"class":433},"visited_by_masha ",[427,1188,438],{"class":437},[427,1190,441],{"class":433},[427,1192,1193],{"class":546},"\"Paris\"",[427,1195,448],{"class":433},[427,1197,1198],{"class":546},"\"London\"",[427,1200,467],{"class":433},[427,1202,1203,1206,1208,1210,1213,1215,1217],{"class":429,"line":470},[427,1204,1205],{"class":433},"visited_by_kolya ",[427,1207,438],{"class":437},[427,1209,441],{"class":433},[427,1211,1212],{"class":546},"\"Moscow\"",[427,1214,448],{"class":433},[427,1216,1193],{"class":546},[427,1218,467],{"class":433},[427,1220,1221,1223,1225,1228],{"class":429,"line":480},[427,1222,1205],{"class":433},[427,1224,1176],{"class":437},[427,1226,1227],{"class":433}," visited_by_masha  ",[427,1229,1230],{"class":476},"# {'London', 'Moscow', 'Paris'}\n",[619,1232,1234],{"id":1233},"пересечение-множеств","Пересечение множеств",[402,1236,1237,1238,1160,1241,1244],{},"Еще есть «операция И» — ",[1157,1239,1240],{},"пересечение множеств",[820,1242,1243],{},"(intersection)",". В пересечение входят элементы, присутствующие в первом из оригинальных множеств И во втором:",[402,1246,1247],{},[1168,1248],{"alt":1234,"src":1249},"\u002Fimages\u002Fblog\u002Fpython\u002Fst19\u002Fimg2.png",[402,1251,1252,1253,697],{},"В Python оператор пересечения — ",[424,1254,1255],{},"&",[417,1257,1259],{"className":419,"code":1258,"language":421,"meta":422,"style":422},"visited_by_masha = {\"Paris\", \"London\"}\nvisited_by_kolya = {\"Moscow\", \"Paris\"}\nvisited_by_kolya & visited_by_masha  # {'Paris'}\n",[424,1260,1261,1277,1293],{"__ignoreMap":422},[427,1262,1263,1265,1267,1269,1271,1273,1275],{"class":429,"line":430},[427,1264,1186],{"class":433},[427,1266,438],{"class":437},[427,1268,441],{"class":433},[427,1270,1193],{"class":546},[427,1272,448],{"class":433},[427,1274,1198],{"class":546},[427,1276,467],{"class":433},[427,1278,1279,1281,1283,1285,1287,1289,1291],{"class":429,"line":470},[427,1280,1205],{"class":433},[427,1282,438],{"class":437},[427,1284,441],{"class":433},[427,1286,1212],{"class":546},[427,1288,448],{"class":433},[427,1290,1193],{"class":546},[427,1292,467],{"class":433},[427,1294,1295,1297,1299,1301],{"class":429,"line":480},[427,1296,1205],{"class":433},[427,1298,1255],{"class":437},[427,1300,1227],{"class":433},[427,1302,1303],{"class":476},"# {'Paris'}\n",[619,1305,1307],{"id":1306},"разность-множеств","Разность множеств",[402,1309,1310,1160,1312,1315],{},[1157,1311,1307],{},[820,1313,1314],{},"(difference)"," — такое множество, элементы которого содержатся в первом оригинальном множестве, но не содержатся во втором.\nРазность представлена оператором -, потому что по смыслу оператор похож на вычитание из арифметики:",[417,1317,1319],{"className":419,"code":1318,"language":421,"meta":422,"style":422},"visited_by_masha = {\"Paris\", \"London\"}\nvisited_by_kolya = {\"Moscow\", \"Paris\"}\nvisited_by_masha - visited_by_kolya  # {'London'}\nvisited_by_kolya - visited_by_masha  # {'Moscow'}\n",[424,1320,1321,1337,1353,1366],{"__ignoreMap":422},[427,1322,1323,1325,1327,1329,1331,1333,1335],{"class":429,"line":430},[427,1324,1186],{"class":433},[427,1326,438],{"class":437},[427,1328,441],{"class":433},[427,1330,1193],{"class":546},[427,1332,448],{"class":433},[427,1334,1198],{"class":546},[427,1336,467],{"class":433},[427,1338,1339,1341,1343,1345,1347,1349,1351],{"class":429,"line":470},[427,1340,1205],{"class":433},[427,1342,438],{"class":437},[427,1344,441],{"class":433},[427,1346,1212],{"class":546},[427,1348,448],{"class":433},[427,1350,1193],{"class":546},[427,1352,467],{"class":433},[427,1354,1355,1357,1360,1363],{"class":429,"line":480},[427,1356,1186],{"class":433},[427,1358,1359],{"class":437},"-",[427,1361,1362],{"class":433}," visited_by_kolya  ",[427,1364,1365],{"class":476},"# {'London'}\n",[427,1367,1368,1370,1372,1374],{"class":429,"line":734},[427,1369,1205],{"class":433},[427,1371,1359],{"class":437},[427,1373,1227],{"class":433},[427,1375,1376],{"class":476},"# {'Moscow'}\n",[402,1378,1379,1380],{},"Так разность можно обозначить на схеме:\n",[1168,1381],{"alt":1307,"src":1382},"\u002Fimages\u002Fblog\u002Fpython\u002Fst19\u002Fimg3.png",[619,1384,1386],{"id":1385},"симметрическая-разность","Симметрическая разность",[402,1388,1389,1160,1391,1394],{},[1157,1390,1386],{},[820,1392,1393],{},"(symmetric difference)"," — множество, в которое входят элементы, присутствующие ЛИБО в первом, ЛИБО во втором оригинальном множестве:",[402,1396,1397],{},[1168,1398],{"alt":1386,"src":1399},"\u002Fimages\u002Fblog\u002Fpython\u002Fst19\u002Fimg4.png",[402,1401,1402,1403,1406,1407,697],{},"По смыслу операция похожа на ",[1157,1404,1405],{},"исключающее ИЛИ (xor)",", поэтому и представлена оператором ",[424,1408,1409],{},"^",[417,1411,1413],{"className":419,"code":1412,"language":421,"meta":422,"style":422},"visited_by_masha = {\"Paris\", \"London\"}\nvisited_by_kolya = {\"Moscow\", \"Paris\"}\nvisited_by_kolya ^ visited_by_masha  # {'London', 'Moscow'}\n",[424,1414,1415,1431,1447],{"__ignoreMap":422},[427,1416,1417,1419,1421,1423,1425,1427,1429],{"class":429,"line":430},[427,1418,1186],{"class":433},[427,1420,438],{"class":437},[427,1422,441],{"class":433},[427,1424,1193],{"class":546},[427,1426,448],{"class":433},[427,1428,1198],{"class":546},[427,1430,467],{"class":433},[427,1432,1433,1435,1437,1439,1441,1443,1445],{"class":429,"line":470},[427,1434,1205],{"class":433},[427,1436,438],{"class":437},[427,1438,441],{"class":433},[427,1440,1212],{"class":546},[427,1442,448],{"class":433},[427,1444,1193],{"class":546},[427,1446,467],{"class":433},[427,1448,1449,1451,1453,1455],{"class":429,"line":480},[427,1450,1205],{"class":433},[427,1452,1409],{"class":437},[427,1454,1227],{"class":433},[427,1456,1457],{"class":476},"# {'London', 'Moscow'}\n",[619,1459,1461],{"id":1460},"подмножества-и-надмножества","Подмножества и надмножества",[402,1463,1464,1465,1468,1469,1472],{},"Одно множество является ",[1157,1466,1467],{},"подмножеством"," другого (subset), если все элементы первого входят во второе, но второе может содержать еще и другие элементы.\nВторое в этом случае является ",[1157,1470,1471],{},"надмножеством"," для первого (superset):",[402,1474,1475],{},[1168,1476],{"alt":1461,"src":1477},"\u002Fimages\u002Fblog\u002Fpython\u002Fst19\u002Fimg5.png",[402,1479,1480,1481,693,1484,697],{},"При этом равные множества являются друг для друга одновременно и подмножествами и надмножествами.\nВ Python соотношение множеств можно проверить с помощью методов ",[424,1482,1483],{},"issubset",[424,1485,1486],{},"issuperset",[417,1488,1490],{"className":419,"code":1489,"language":421,"meta":422,"style":422},"a = {1, 2, 3, 4}\nb = {3, 4}\na.issubset(b) # False\n",[424,1491,1492,1517,1534],{"__ignoreMap":422},[427,1493,1494,1497,1499,1501,1503,1505,1507,1509,1511,1513,1515],{"class":429,"line":430},[427,1495,1496],{"class":433},"a ",[427,1498,438],{"class":437},[427,1500,441],{"class":433},[427,1502,445],{"class":444},[427,1504,448],{"class":433},[427,1506,451],{"class":444},[427,1508,448],{"class":433},[427,1510,456],{"class":444},[427,1512,448],{"class":433},[427,1514,890],{"class":444},[427,1516,467],{"class":433},[427,1518,1519,1522,1524,1526,1528,1530,1532],{"class":429,"line":470},[427,1520,1521],{"class":433},"b ",[427,1523,438],{"class":437},[427,1525,441],{"class":433},[427,1527,456],{"class":444},[427,1529,448],{"class":433},[427,1531,890],{"class":444},[427,1533,467],{"class":433},[427,1535,1536,1539],{"class":429,"line":480},[427,1537,1538],{"class":433},"a.issubset(b) ",[427,1540,646],{"class":476},[409,1542,1544],{"id":1543},"методы-объектов-множеств","Методы объектов множеств",[402,1546,1547],{},"Существуют операторы, которые позволяют различными способами комбинировать множества.\nЭти операторы максимально похожи на те, что применяются в теории множеств в математике.",[619,1549,1551],{"id":1550},"операции-над-множествами-как-методы","Операции над множествами как методы",[402,1553,1554],{},"С теорией множеств программисты обычно знакомы, хотя бы поверхностно. Поэтому множества нужно использовать в сочетании с операторами.\nОднако было бы неправильно умолчать, что у каждого оператора есть свой словесный метод-аналог. Познакомимся с этими методами-аналогами:",[417,1556,1558],{"className":419,"code":1557,"language":421,"meta":422,"style":422},"a.union(b)  # аналог \"a | b\"\na.intersection(b)  # аналог \"a & b\"\na.difference(b)  # аналог \"a - b\"\na.symmetric_difference(b)  # аналог \"a ^ b\"\n",[424,1559,1560,1568,1576,1584],{"__ignoreMap":422},[427,1561,1562,1565],{"class":429,"line":430},[427,1563,1564],{"class":433},"a.union(b)  ",[427,1566,1567],{"class":476},"# аналог \"a | b\"\n",[427,1569,1570,1573],{"class":429,"line":470},[427,1571,1572],{"class":433},"a.intersection(b)  ",[427,1574,1575],{"class":476},"# аналог \"a & b\"\n",[427,1577,1578,1581],{"class":429,"line":480},[427,1579,1580],{"class":433},"a.difference(b)  ",[427,1582,1583],{"class":476},"# аналог \"a - b\"\n",[427,1585,1586,1589],{"class":429,"line":734},[427,1587,1588],{"class":433},"a.symmetric_difference(b)  ",[427,1590,1591],{"class":476},"# аналог \"a ^ b\"\n",[619,1593,1595],{"id":1594},"обновление-множеств","Обновление множеств",[402,1597,1598,1599,1602],{},"Вспомним метод ",[424,1600,1601],{},"update"," у словаря, который обновляет словарь «по месту» с помощью данных из другого словаря.\nТак вот, для множеств существует несколько таких update-методов:",[1604,1605,1606,1610,1613,1616],"ul",{},[1607,1608,1609],"li",{},"difference_update",[1607,1611,1612],{},"intersection_update",[1607,1614,1615],{},"symmetric_difference_update",[1607,1617,1618],{},"update\nРассмотрим их подробнее:",[1620,1621,1622],"ol",{},[1607,1623,1624],{},"Метод difference_update работает похоже на difference. Он удаляет из связанного множества все элементы, которые входят в множество-аргумент:",[417,1626,1628],{"className":419,"code":1627,"language":421,"meta":422,"style":422},"a, b = {1, 2}, {2, 3}\na.difference_update(b)\nprint(a)  # {1}\n",[424,1629,1630,1656,1661],{"__ignoreMap":422},[427,1631,1632,1635,1637,1639,1641,1643,1645,1648,1650,1652,1654],{"class":429,"line":430},[427,1633,1634],{"class":433},"a, b ",[427,1636,438],{"class":437},[427,1638,441],{"class":433},[427,1640,445],{"class":444},[427,1642,448],{"class":433},[427,1644,451],{"class":444},[427,1646,1647],{"class":433},"}, {",[427,1649,451],{"class":444},[427,1651,448],{"class":433},[427,1653,456],{"class":444},[427,1655,467],{"class":433},[427,1657,1658],{"class":429,"line":470},[427,1659,1660],{"class":433},"a.difference_update(b)\n",[427,1662,1663,1666,1669],{"class":429,"line":480},[427,1664,1665],{"class":444},"print",[427,1667,1668],{"class":433},"(a)  ",[427,1670,1671],{"class":476},"# {1}\n",[1620,1673,1674],{"start":470},[1607,1675,1676],{},"Метод intersection_update и его изменяющий аналог intersection. Он оставляет в связанном множестве только те элементы, которые входят и в множество-аргумент:",[417,1678,1680],{"className":419,"code":1679,"language":421,"meta":422,"style":422},"a, b = {1, 2}, {2, 3}\na.intersection_update(b)\nprint(a)  # {1}\n",[424,1681,1682,1706,1711],{"__ignoreMap":422},[427,1683,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704],{"class":429,"line":430},[427,1685,1634],{"class":433},[427,1687,438],{"class":437},[427,1689,441],{"class":433},[427,1691,445],{"class":444},[427,1693,448],{"class":433},[427,1695,451],{"class":444},[427,1697,1647],{"class":433},[427,1699,451],{"class":444},[427,1701,448],{"class":433},[427,1703,456],{"class":444},[427,1705,467],{"class":433},[427,1707,1708],{"class":429,"line":470},[427,1709,1710],{"class":433},"a.intersection_update(b)\n",[427,1712,1713,1715,1717],{"class":429,"line":480},[427,1714,1665],{"class":444},[427,1716,1668],{"class":433},[427,1718,1671],{"class":476},[1620,1720,1721],{"start":480},[1607,1722,1723],{},"Метод symmetric_difference_update и его изменяющий аналог symmetric_difference.\nОн добавляет в связанное множество элементы, которые есть только в множестве-аргументе.\nТакже он удаляет элементы, которые есть в обоих множествах:",[417,1725,1727],{"className":419,"code":1726,"language":421,"meta":422,"style":422},"a, b = {1, 2}, {2, 3}\na.symmetric_difference_update(b)\nprint(a)  # {1, 3}\n",[424,1728,1729,1753,1758],{"__ignoreMap":422},[427,1730,1731,1733,1735,1737,1739,1741,1743,1745,1747,1749,1751],{"class":429,"line":430},[427,1732,1634],{"class":433},[427,1734,438],{"class":437},[427,1736,441],{"class":433},[427,1738,445],{"class":444},[427,1740,448],{"class":433},[427,1742,451],{"class":444},[427,1744,1647],{"class":433},[427,1746,451],{"class":444},[427,1748,448],{"class":433},[427,1750,456],{"class":444},[427,1752,467],{"class":433},[427,1754,1755],{"class":429,"line":470},[427,1756,1757],{"class":433},"a.symmetric_difference_update(b)\n",[427,1759,1760,1762,1764],{"class":429,"line":480},[427,1761,1665],{"class":444},[427,1763,1668],{"class":433},[427,1765,1766],{"class":476},"# {1, 3}\n",[1620,1768,1769],{"start":734},[1607,1770,1771],{},"Метод update и его изменяющий аналог union. Он дополняет связанное множество отсутствующими элементами из множества-аргумента:",[417,1773,1775],{"className":419,"code":1774,"language":421,"meta":422,"style":422},"a, b = {1, 2}, {2, 3}\na.update(b)\nprint(a)  # {1, 2, 3}\n",[424,1776,1777,1801,1806],{"__ignoreMap":422},[427,1778,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799],{"class":429,"line":430},[427,1780,1634],{"class":433},[427,1782,438],{"class":437},[427,1784,441],{"class":433},[427,1786,445],{"class":444},[427,1788,448],{"class":433},[427,1790,451],{"class":444},[427,1792,1647],{"class":433},[427,1794,451],{"class":444},[427,1796,448],{"class":433},[427,1798,456],{"class":444},[427,1800,467],{"class":433},[427,1802,1803],{"class":429,"line":470},[427,1804,1805],{"class":433},"a.update(b)\n",[427,1807,1808,1810,1812],{"class":429,"line":480},[427,1809,1665],{"class":444},[427,1811,1668],{"class":433},[427,1813,477],{"class":476},[402,1815,1816,1817,1820,1821,1824],{},"Попробуйте сами запустить код в окне ниже с интерпретатором Python и повторите примеры из статьи чтобы самим увидеть и понять как всё это работает.\nДля этого в ячейке с кодом нажмите клавиши на клавиатуре ",[1157,1818,1819],{},"Shift+Enter"," или запустите код через ",[1157,1822,1823],{},"кнопку Run"," по значку ▶.",[1826,1827],"jypiter",{},[1829,1830,1831],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}",{"title":422,"searchDepth":470,"depth":743,"links":1833},[1834],{"id":399,"depth":470,"text":400,"children":1835},[1836,1839,1840,1841,1849],{"id":411,"depth":480,"text":412,"children":1837},[1838],{"id":621,"depth":734,"text":622},{"id":682,"depth":480,"text":683},{"id":810,"depth":480,"text":811},{"id":946,"depth":480,"text":947,"children":1842},[1843,1844,1845,1846,1847,1848],{"id":953,"depth":734,"text":954},{"id":1151,"depth":734,"text":1152},{"id":1233,"depth":734,"text":1234},{"id":1306,"depth":734,"text":1307},{"id":1385,"depth":734,"text":1386},{"id":1460,"depth":734,"text":1461},{"id":1543,"depth":480,"text":1544,"children":1850},[1851,1852],{"id":1550,"depth":734,"text":1551},{"id":1594,"depth":734,"text":1595},"2025-07-07","Синтаксис. Изменение множеств. Операции над множествами. Методы объектов множеств","md","images\u002Fblog\u002Fpython\u002Fst19\u002Fimg.png",{},15,true,19,{"title":230,"description":1854},"FU9yrk0iuCaNnrn-RzOijGiZxBBZv4yIaFqxQbl-IQk",[1864,1866],{"title":226,"path":227,"stem":228,"description":1865,"children":-1},"Синтаксис. Изменение данных в словаре. Инициализация новых значений",{"title":238,"path":239,"stem":240,"description":1867,"children":-1},"Как работает хеш‑функция. Устройство и практическое применение хеш‑таблиц. Коллизии в хеш-таблицах и их разрешение. Производительность и примеры хеш-функций.",1780737509535]