⚖️ Учебный код и современная практика

⚡ Кратко

Материал урока актуален для Python 3.x. Главное современное уточнение: методы, которые меняют список на месте, не нужно присваивать обратно в переменную. Для нового списка используйте sorted(), list(reversed(...)) или явное построение результата.

1. sort() не возвращает новый список

Проблемно

numbers = [3, 1, 2]
numbers = numbers.sort()
print(numbers)

Будет None, потому что sort() меняет список на месте.

Лучше

numbers = [3, 1, 2]
numbers.sort()
print(numbers)
numbers = [3, 1, 2]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

2. Явная проверка перед remove()

Риск ValueError

fruits = ["apple", "banana"]
fruits.remove("orange")

Без падения

fruits = ["apple", "banana"]
if "orange" in fruits:
    fruits.remove("orange")
print(fruits)

3. Цикл append() и генератор списка

В источнике решения строятся через пустой список и append(). Для начального уровня это лучший способ увидеть алгоритм.

strings = ["apple", "banana", "level", "radar", "grape"]
result = []
for string in strings:
    if string[0] == string[-1]:
        result.append(string)
print(result)
Проверить по документации: в современной практике для простой фильтрации часто используют list comprehension. Это короче, но его лучше вводить после уверенного владения обычным циклом.
strings = ["apple", "banana", "level", "radar", "grape"]
result = [string for string in strings if string[0] == string[-1]]
print(result)

4. append() против extend()

Не существует «старого» и «нового» варианта: это разные операции. append(["cherry"]) добавит вложенный список, а extend(["cherry"]) добавит строку как новый элемент. extend("cherry") добавит буквы отдельно, потому что строка итерируемая.