Списки — это одна из самых популярных и удобных структур данных в Python. Они позволяют хранить набор элементов, которые можно изменять, добавлять и удалять.
По сути список это класс, и когда мы пишем a = [], то мы создаём экземпляр класса.
Через точку мы можем обращаться к его методам:
a.append()
Теперь к методам:
Список можно создать, используя квадратные скобки:
numbers = [1, 2, 3, 4, 5] # список из чисел
words = ["apple", "banana", "cherry"] # список из строк
mixed = [1, "apple", True] # список с элементами разных типов
Основные методы работы со списками
1. Добавление элементов
append(x) — добавляет элемент в конец списка
fruits = ["apple", "banana"]
fruits.append("cherry")
print(fruits) # ['apple', 'banana', 'cherry']
insert(i, x) — вставляет элемент x на позицию i
fruits = ["apple", "cherry"]
fruits.insert(1, "banana") # вставляем на позицию 1
print(fruits) # ['apple', 'banana', 'cherry']
extend(iterable) — расширяет список элементами из другого списка или итерации
fruits = ["apple", "banana"]
more_fruits = ["cherry", "orange"]
fruits.extend(more_fruits)
print(fruits) # ['apple', 'banana', 'cherry', 'orange']
2. Удаление элементов
remove(x) — удаляет первый элемент со значением x
fruits = ["apple", "banana", "cherry"]
fruits.remove("banana")
print(fruits) # ['apple', 'cherry']
pop(i) — удаляет элемент на позиции i и возвращает его. Если i не указан, удаляет последний элемент.
fruits = ["apple", "banana", "cherry"]
last = fruits.pop() # удаляем последний элемент
print(fruits) # ['apple', 'banana']
print(last) # 'cherry'
clear() — удаляет все элементы из списка
fruits = ["apple", "banana", "cherry"]
fruits.clear()
print(fruits) # []
3. Поиск элементов
index(x) — возвращает индекс первого элемента со значением x
fruits = ["apple", "banana", "cherry"]
print(fruits.index("banana")) # 1
count(x) — считает количество элементов со значением x
numbers = [1, 2, 2, 3, 2]
print(numbers.count(2)) # 3
4. Сортировка и изменение порядка
sort() — сортирует список по возрастанию (или убыванию, если указать reverse=True)
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers) # [1, 2, 5, 9]
numbers.sort(reverse=True)
print(numbers) # [9, 5, 2, 1]
reverse() — переворачивает список
numbers = [1, 2, 3]
numbers.reverse()
print(numbers) # [3, 2, 1]
5. Копирование списка
copy() — создает поверхностную копию списка
Поверхностная копия списка — это копия, в которой элементы копируются только на первом уровне вложенности. Это значит, что если список содержит вложенные объекты (например, другие списки), то они не будут скопированы, а будут ссылаться на одни и те же объекты в памяти.
original = [1, 2, 3]
copy_list = original.copy()
print(copy_list) # [1, 2, 3]
Другие полезные операции
С помощью оператора in можно проверить, есть ли элемент в списке:
fruits = ["apple", "banana", "cherry"]
print("banana" in fruits) # True
print("orange" in fruits) # False
Перебор элементов списка с помощью цикла for:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
Создание списков с помощью генераторов:
Генераторы списков — это компактный синтаксис для создания новых списков на основе существующих последовательностей или диапазонов. Вместо написания длинного цикла for, генератор позволяет создать список одной строкой.
squares = [x**2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]
Подводя итог, списки — мощный инструмент, который позволяет хранить и обрабатывать коллекции данных. Методы работы со списками предоставляют гибкость для выполнения практически любых операций.