Справочник Python

Полное руководство по языку на русском

Списки

Создание списков

empty = []  # инициализация списка
nums = [1, 2, 3, 4, 5]  # инициализация списка
mixed = [1, "hello", 3.14, True]  # инициализация списка
nested = [[1, 2], [3, 4]]  # инициализация списка

# Из строки
list("abc")        # ['a', 'b', 'c']

# range — создание последовательности
list(range(5))     # [0, 1, 2, 3, 4]
list(range(2, 7))  # [2, 3, 4, 5, 6]
list(range(0, 10, 2))  # [0, 2, 4, 6, 8]

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

nums = [10, 20, 30, 40, 50]  # инициализация списка
nums[0]     # 10
nums[-1]    # 50
nums[1:3]   # [20, 30]
nums[:3]    # [10, 20, 30]
nums[::2]   # [10, 30, 50]
nums[::-1]  # [50, 40, 30, 20, 10]

# Изменение по индексу
nums[0] = 100

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

lst = [1, 2, 3]  # инициализация списка

lst.append(4)         # [1, 2, 3, 4]
lst.insert(0, 0)      # [0, 1, 2, 3, 4]
lst.extend([5, 6])    # [0, 1, 2, 3, 4, 5, 6]
lst.remove(3)  # удаление первого вхождения
lst.pop()             # 6, lst → [0, 1, 2, 4, 5]
lst.pop(0)            # 0, lst → [1, 2, 4, 5]
lst.index(4)          # 2 (индекс элемента)
lst.count(2)          # 1 (количество вхождений)
lst.sort()  # сортировка на месте
lst.sort(reverse=True)  # сортировка на месте
sorted(lst)  # сортированная копия
lst.reverse()  # разворот на месте
len(lst)  # длина
sum(lst)  # сумма
min(lst), max(lst)  # минимум
del lst[0]  # удаление
lst.clear()  # очистка

# Копирование
copy = lst.copy()  # поверхностная копия
copy = lst[:]  # присваивание
deep = copy.deepcopy(lst)  # глубокая копия

Списковые включения (List Comprehension)

# Квадраты чисел от 0 до 9
squares = [x**2 for x in range(10)]  # последовательность чисел

# Чётные числа
evens = [x for x in range(20) if x % 2 == 0]  # последовательность чисел

# Вложенный цикл
pairs = [(x, y) for x in [1,2] for y in [3,4]]  # списковое включение
# [(1,3), (1,4), (2,3), (2,4)]

# С условием if-else
labels = ["чёт" if x % 2 == 0 else "нечёт" for x in range(5)]  # последовательность чисел

# Трансформация строк
words = ["hello", "world"]  # инициализация списка
uppers = [w.upper() for w in words]  # ['HELLO', 'WORLD']

# Фильтрация с None
values = [1, None, 3, None, 5]  # инициализация списка
clean = [v for v in values if v is not None]  # [1, 3, 5]

Функции для работы со списками

# all / any — все / хотя бы один
all([True, True, True])   # True
any([False, True, False]) # True
all([x > 0 for x in nums])  # все элементы истинны?

# enumerate — индексы с элементами
for i, val in enumerate(["a", "b", "c"]):  # цикл по элементам
    print(i, val)  # 0 a, 1 b, 2 c

# zip — параллельная итерация
names = ["Анна", "Борис"]  # инициализация списка
ages  = [30, 25]  # инициализация списка
for name, age in zip(names, ages):  # цикл по элементам
    print(f"{name}: {age}")  # вывод в консоль