Мастерство работы со списками Python: append, sort, len и list comprehensions — практическое руководство
Что такое список в Python?
Список (list) в Python — универсальный контейнер, способный хранить объекты любого типа: целые числа, строки, числа с плавающей точкой или даже другие списки. Он обозначается квадратными скобками [], в отличие от кортежей (tuples), использующих круглые скобки (). В отличие от кортежей, списки изменяемы: вы можете добавлять, удалять или менять элементы после создания.
В этом руководстве вы научитесь:
- Понимать списки Python
- Примерам однородных и неоднородных списков
- Доступу, срезам и обновлению элементов
- Удалению и добавлению элементов
- Встроенным методам списков
- Циклам и comprehensions для эффективного кода
- Сортировке и реверсу списков
Примеры списков Python
Списки могут быть однородными (все элементы одного типа) или неоднородными (смешанные типы). Чёткие примеры:
# Однородные списки int_list = [1, 2, 3, 8, 33] animal_list = ['dog', 'cat', 'goat'] name_list = ['John', 'Travis', 'Sheila'] float_list = [2.2, 4.5, 9.8, 10.4] # Неоднородные списки mixed_list_1 = [2, 'cat', 34.33, 'Travis'] mixed_list_2 = [2.22, 33, 'pen']
Доступ к значениям внутри списков
Списки в Python индексируются с нуля. Отрицательный индекс -1 ссылается на последний элемент.
items = [3, 22, 30, 5.3, 20] print(items[0]) # 3 print(items[1]) # 22 print(items[-1]) # 20
Срезы списков (slicing)
Срезы извлекают подпоследовательность с синтаксисом start:stop, где stop не включается.
items = [3, 22, 30, 5.3, 20] print(items[:]) # Все элементы print(items[1:3]) # [22, 30] print(items[:4]) # [3, 22, 30, 5.3] print(items[2:-1]) # [30, 5.3]
Обновление списков
Измените элемент, присвоив новое значение по его индексу.
subjects = ['physics', 'chemistry', 'mathematics'] subjects[0] = 'biology' print(subjects) # ['biology', 'chemistry', 'mathematics']
Удаление элементов списка
Три распространённых подхода:
list.remove(value)— удаляет первое вхождение значения.list.pop(index)— удаляет и возвращает элемент по индексу.del list[index]— удаляет элемент по индексу без возврата.
nums = [3, 5, 7, 8, 9, 20] nums.remove(3) # [5, 7, 8, 9, 20] nums.pop(2) # удаляет 8 # del nums[0] # удалил бы 5
Добавление элементов (append)
Метод append() добавляет элемент в конец списка.
values = [3, 5, 7, 8, 9, 20]
values.append(3.33)
values.append('cats')
print(values) # [3, 5, 7, 8, 9, 20, 3.33, 'cats']
Встроенные функции и методы списков
len(list)— количество элементов.max(list),min(list)— экстремальные значения.list(tuple)— конвертация кортежа в список.list.append(item)— добавление в конец.list.pop(index)— удаление по индексу.list.remove(item)— удаление по значению.list.reverse()— реверс на месте.list.index(item)— индекс первого вхождения.sum(list)— сумма числовых элементов.list.sort()— сортировка по возрастанию;list.sort(reverse=True)— по убыванию.
values = [1, 7, 9, 3, 5] values.sort() print(values) # [1, 3, 5, 7, 9] values.sort(reverse=True) print(values) # [9, 7, 5, 3, 1]
Итерация по спискам
Перебор элементов с циклом for, опционально с модификацией или построением нового списка.
nums = [10, 20, 30, 40, 50, 60, 70]
# Добавить 5 к каждому (не меняет оригинал)
for n in nums:
print(n + 5)
# Построить новый список из среза
new_list = []
for n in nums[2:]:
new_list.append(n)
print(new_list) # [30, 40, 50, 60, 70]
List Comprehensions (генераторы списков)
List comprehensions дают лаконичный синтаксис для создания списков из итерируемых объектов. Они быстрее и читаемее эквивалентных for-циклов.
# Квадраты чисел от 1 до 9 squares = [x**2 for x in range(1, 10)] print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81]
Резюме
- Списки Python — изменяемые, упорядоченные коллекции.
- Доступ, срезы и обновление через индексы.
- Встроенные методы упрощают частые задачи: append, remove, pop, sort, reverse и др.
- List comprehensions позволяют элегантно и эффективно конструировать списки.
- Освоение этих основ создаёт прочную базу для продвинутого Python-программирования.
Python
- Освоение типов данных в Python: практическое руководство
- Мастерство операторов Python: Полное руководство
- Оператор pass в Python: практическое руководство
- Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
- Словари в Python: создание, манипуляции и продвинутые техники
- Итераторы в Python: как они работают и как создать свои
- Замыкания в Python: как вложенные функции захватывают переменные
- Модуль datetime в Python: практическое руководство по датам, времени и часовым поясам
- Вычисление среднего значения в Python: практическое руководство
- Python list.count(): экспертное руководство с практическими примерами