set для уникальности, tuple для неизменяемых данных.
⏱️ ~45 мин·Начальный·📚 3 урока
Множество (set) — мешок без повторов
Представьте мешок, в который при попытке положить уже имеющуюся вещь ничего не меняется — дубликаты в нём невозможны. МножествоКоллекция уникальных элементов без порядка: {1, 2, 3}. По-английски set. хранит только уникальные элементы и не помнит их порядок. Идеально для двух задач: убрать дубликаты и быстро проверить «есть ли элемент».
▶ set.py
ФункцияИменованный блок кода, который можно вызывать многократно. Может принимать аргументы и возвращать результат.set(nums) превращает списокИзменяемая упорядоченная коллекция элементов: [1, 2, 3]. По-английски list. в множество, попутно выбрасывая повторы. Поэтому len(set(nums)) — это «сколько различных значений». МетодФункция, привязанная к объекту и вызываемая через точку: text.upper()..add() добавляет элемент (если его ещё нет).
💡Совет
Проверка x in set работает мгновенно, а x in list — перебором. Если часто проверяете наличие элемента в больших данных, используйте множество. Это частый приём для ускорения решений на LeetCode.
Кортеж (tuple) — список под замком
КортежНеизменяемая упорядоченная коллекция: (1, 2). Похож на список, но менять нельзя. По-английски tuple. — как список, но неизменяемый: после создания его нельзя менять. Создаётся круглыми скобками. Используют, когда набор значений не должен меняться — например, координаты точки или строкаТекстовое значение в кавычках: "привет". Неизменяема. По-английски string (str). из базы данных.
▶ tuple.py
Приятная мелочь — распаковка: x, y = point разом раскладывает кортеж в отдельные переменныеИменованное хранилище для значения. Имя связывается со значением через присваивание: x = 5.. Так часто возвращают из функции сразу несколько значений.
⚠️ Частые ошибки новичков
Ошибка. Попытаться изменить кортеж. Запустите код — увидите TypeError: кортеж не поддерживает присваивание по индексу. Почините: либо используйте список [10, 20], либо создайте новый кортеж.
▶ broken-tuple.py
💡Совет
Предскажите вывод. Сколько элементов окажется в set([1, 1, 2, 2, 2])? Запустите и убедитесь, что повторы схлопнулись.
▶ predict-set.py
Заданиерешение.py
Дан список nums = [3, 1, 3, 2, 1, 5, 3]. Посчитайте количество уникальных чисел и сохраните в переменную unique_count.
Заданиесредняярешение.py
Даны два списка друзей: a = [1, 2, 3, 4] и b = [3, 4, 5, 6] (числа — id пользователей). Найдите общих друзей — тех, кто есть в обоих списках, — и сохраните их количество в common. Подсказка: превратите списки в множества и используйте пересечение &.
❓Проверь себя
Что произойдёт с дубликатами при создании set([1, 1, 2])?
Чем кортеж отличается от списка?
ℹ️Важно
✅ Что вы узнали
Множество (set) хранит только уникальные элементы без порядка.
set(list) убирает дубликаты; x in set — мгновенная проверка.
Кортеж (tuple) — неизменяемый список в круглых скобках.
Комментарии
Загрузка…
Загрузка комментариев…