Статьи

Учебные материалы по языку Python — от основ до продвинутых тем

Списки и кортежи

Страница 8 из 34 · 2026-10-26 · 2 мин чтения

Списки

Список — упорядоченная изменяемая коллекция произвольных объектов:

numbers = [1, 2, 3]mixed = [1, "a", 3.5, [1, 2]]empty = []

Доступ и срезы

Индексы и срезы работают так же, как у строк:

a = [10, 20, 30, 40, 50]print(a[0])print(a[-1])print(a[1:3])print(a[::-1])a[0] = 99a[1:3] = [0, 0, 0]print(a)

Методы списков

a = [3, 1, 2]a.append(4)a.extend([5, 6])a.insert(0, 100)a.remove(100)last = a.pop()first = a.pop(0)print(a.index(2))print(a.count(1))a.sort()a.sort(reverse=True)a.reverse()a.clear()

sort изменяет список на месте. Для получения нового отсортированного списка используйте функцию sorted:

data = [3, 1, 2]print(sorted(data))print(sorted(data, key=lambda x: -x))print(data)

Полезные функции

a = [4, 2, 8]print(len(a))print(min(a))print(max(a))print(sum(a))print(any(x > 5 for x in a))print(all(x > 1 for x in a))

Копирование

a = [1, 2, [3, 4]]b = ac = a.copy()import copyd = copy.deepcopy(a)

b — та же самая коллекция, c — поверхностная копия (вложенный список общий), d — полная независимая копия.

Списковые включения

squares = [x ** 2 for x in range(10)]even = [x for x in range(20) if x % 2 == 0]pairs = [(x, y) for x in range(3) for y in range(3)]

Кортежи

Кортеж — упорядоченная неизменяемая коллекция:

point = (1, 2)single = (1,)empty = ()

Для одноэлементного кортежа запятая обязательна. Кортежи быстрее и компактнее списков, подходят как ключи словарей и для данных, которые не должны меняться.

Распаковка

x, y = (1, 2)a, *rest = [1, 2, 3, 4]first, *middle, last = [1, 2, 3, 4, 5]print(rest)print(middle)

Результат: [2, 3, 4] и [2, 3, 4].

Именованные кортежи

from collections import namedtuplePoint = namedtuple("Point", ["x", "y"])p = Point(3, 4)print(p.x, p.y)

Задания

  1. Удалите из списка дубликаты, сохранив порядок элементов.
  2. Поменяйте местами первый и последний элементы списка с помощью распаковки.
  3. Сгенерируйте список квадратов нечётных чисел до 50.