← Назад к вопросам

Какие знаешь встроенные функции для работы со списками?

1.0 Junior🔥 241 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Встроенные функции для работы со списками в Python

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

1. Основные методы списка

append() — добавить элемент

fruits = ['apple', 'banana']
fruits.append('orange')
print(fruits)  # ['apple', 'banana', 'orange']

extend() — добавить несколько элементов

fruits = ['apple', 'banana']
fruits.extend(['orange', 'grape'])
print(fruits)  # ['apple', 'banana', 'orange', 'grape']

# Разница от append:
fruits.append(['cherry', 'lime'])
print(fruits)  # [..., ['cherry', 'lime']]  — вложенный список

insert() — вставить элемент в позицию

fruits = ['apple', 'banana', 'orange']
fruits.insert(1, 'grape')
print(fruits)  # ['apple', 'grape', 'banana', 'orange']

remove() — удалить первый элемент по значению

fruits = ['apple', 'banana', 'orange', 'banana']
fruits.remove('banana')
print(fruits)  # ['apple', 'orange', 'banana']

# Удаляет только первое вхождение
# Вызывает ValueError если элемента нет
fruits.remove('grape')  # ValueError: list.remove(x): x not in list

pop() — удалить и вернуть элемент

fruits = ['apple', 'banana', 'orange']
last = fruits.pop()  # 'orange'
print(fruits)  # ['apple', 'banana']

# Удалить по индексу
second = fruits.pop(1)  # 'banana'
print(fruits)  # ['apple']

# Если индекс не указан, удаляет последний элемент

clear() — очистить список

fruits = ['apple', 'banana', 'orange']
fruits.clear()
print(fruits)  # []

index() — найти индекс элемента

fruits = ['apple', 'banana', 'orange']
idx = fruits.index('banana')
print(idx)  # 1

# Вызывает ValueError если элемента нет
fruits.index('grape')  # ValueError

count() — количество элементов

numbers = [1, 2, 2, 3, 2, 4]
count = numbers.count(2)
print(count)  # 3

sort() — сортировка на месте

numbers = [3, 1, 4, 1, 5, 9]
numbers.sort()
print(numbers)  # [1, 1, 3, 4, 5, 9]

# Сортировка в обратном порядке
numbers.sort(reverse=True)
print(numbers)  # [9, 5, 4, 3, 1, 1]

# Сортировка со своей функцией сравнения
fruits = ['apple', 'banana', 'cherry']
fruits.sort(key=len)  # По длине
print(fruits)  # ['apple', 'banana', 'cherry']

# По второму символу
words = ['cat', 'bat', 'sat']
words.sort(key=lambda x: x[1])
print(words)  # ['bat', 'cat', 'sat']  — по второму символу

reverse() — развернуть список

numbers = [1, 2, 3, 4, 5]
numbers.reverse()
print(numbers)  # [5, 4, 3, 2, 1]

copy() — копировать список

original = [1, 2, 3]
copy = original.copy()  # Неглубокая копия

copy.append(4)
print(original)  # [1, 2, 3]
print(copy)  # [1, 2, 3, 4]

# Или использовать срезы
copy2 = original[:]  # То же самое

2. Встроенные функции Python

len() — длина списка

fruits = ['apple', 'banana', 'orange']
print(len(fruits))  # 3

min() — минимальный элемент

numbers = [3, 1, 4, 1, 5, 9]
print(min(numbers))  # 1

fruits = ['apple', 'banana', 'cherry']
print(min(fruits))  # 'apple'  — алфавитный порядок

# С функцией key
words = ['cat', 'elephant', 'dog']
print(min(words, key=len))  # 'cat'  — самое короткое

max() — максимальный элемент

numbers = [3, 1, 4, 1, 5, 9]
print(max(numbers))  # 9

fruits = ['apple', 'banana', 'cherry']
print(max(fruits))  # 'cherry'  — алфавитный порядок

sum() — сумма элементов

numbers = [1, 2, 3, 4, 5]
print(sum(numbers))  # 15

# С начальным значением
print(sum(numbers, start=10))  # 25

sorted() — сортировка (возвращает новый список)

numbers = [3, 1, 4, 1, 5, 9]
sorted_list = sorted(numbers)
print(sorted_list)  # [1, 1, 3, 4, 5, 9]
print(numbers)  # [3, 1, 4, 1, 5, 9]  — оригинал не изменяется

# Разница от .sort():
# sorted() возвращает новый список
# .sort() изменяет список на месте и ничего не возвращает

reversed() — развернуть (возвращает итератор)

numbers = [1, 2, 3, 4, 5]
reversed_list = list(reversed(numbers))
print(reversed_list)  # [5, 4, 3, 2, 1]

for num in reversed(numbers):
    print(num)  # Выведет 5, 4, 3, 2, 1

any() — хотя бы один элемент True

nums = [0, 0, 1, 0]
print(any(nums))  # True  — есть 1

nums = [0, 0, 0]
print(any(nums))  # False  — нет True значений

# С условием
people = [{'age': 10}, {'age': 25}, {'age': 15}]
print(any(p['age'] > 18 for p in people))  # True  — есть взрослый

all() — все элементы True

nums = [1, 2, 3, 4]
print(all(nums))  # True  — все ненулевые

nums = [1, 2, 0, 4]
print(all(nums))  # False  — есть ноль

# С условием
people = [{'age': 25}, {'age': 30}, {'age': 28}]
print(all(p['age'] > 18 for p in people))  # True  — все взрослые

map() — применить функцию к каждому элементу

numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # [1, 4, 9, 16]

# Или более читаемо
def square(x):
    return x**2

squared = list(map(square, numbers))
print(squared)  # [1, 4, 9, 16]

filter() — фильтровать элементы

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # [2, 4, 6, 8]

# Или через list comprehension (более pythonic)
evens = [x for x in numbers if x % 2 == 0]
print(evens)  # [2, 4, 6, 8]

enumerate() — получить индекс и элемент

fruits = ['apple', 'banana', 'cherry']

for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")
# 0: apple
# 1: banana
# 2: cherry

# С начальным индексом
for index, fruit in enumerate(fruits, start=1):
    print(f"{index}: {fruit}")
# 1: apple
# 2: banana
# 3: cherry

zip() — объединить несколько списков

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]

for name, age in zip(names, ages):
    print(f"{name}: {age}")
# Alice: 25
# Bob: 30
# Charlie: 35

# Создать словарь из двух списков
dict(zip(names, ages))  # {'Alice': 25, 'Bob': 30, 'Charlie': 35}

3. List Comprehension (самый pythonic способ)

# Вместо map
numbers = [1, 2, 3, 4, 5]
squared = [x**2 for x in numbers]
print(squared)  # [1, 4, 9, 16, 25]

# Вместо filter
evens = [x for x in numbers if x % 2 == 0]
print(evens)  # [2, 4]

# Комбинированно
result = [x**2 for x in numbers if x % 2 == 0]
print(result)  # [4, 16]

# Вложенный list comprehension
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat = [x for row in matrix for x in row]
print(flat)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

4. Практический пример: обработка данных

students = [
    {'name': 'Alice', 'score': 85},
    {'name': 'Bob', 'score': 92},
    {'name': 'Charlie', 'score': 78},
    {'name': 'Diana', 'score': 88}
]

# Получить средний балл
average = sum(s['score'] for s in students) / len(students)
print(f"Средний балл: {average}")  # 85.75

# Найти студентов с баллом выше среднего
top_students = [s['name'] for s in students if s['score'] > average]
print(f"Лучшие студенты: {top_students}")

# Отсортировать по баллам
sorted_students = sorted(students, key=lambda s: s['score'], reverse=True)
for student in sorted_students:
    print(f"{student['name']}: {student['score']}")

5. Вывод

Встроенные функции Python для работы со списками сделают ваш код:

  • Быстрее: оптимизированы на C
  • Понятнее: меньше кода, ясная логика
  • Надёжнее: проверены годами использования
  • Pythonic: следуют философии Python

Основной принцип: используй встроенные функции и методы, а не пытайся написать что-то с нуля.