✅ Решения

⚡ Кратко

Сначала сравните своё решение с идеей, а не с каждой строкой.

Если код отличается, проверьте поведение на тех же входных данных.

Решение считается хорошим, если оно понятно, проходит пример и не зависит от случайного порядка вывода.

Топ-3 ошибки: путать ссылку и копию; ожидать порядок там, где его нет; усложнять выражение, когда обычный цикл читается лучше.

Решение 1. Удаление после нуля

numbers = [1, 2, 0, 3, 4, 5]

if 0 in numbers:
    zero_index = numbers.index(0)
    del numbers[zero_index:]

print("Список после удаления:", numbers)

Срез [zero_index:] включает сам ноль и весь хвост.

Решение 2. Объединение информации

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

for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

zip даёт пары из элементов с одинаковыми позициями.

Решение 3. Умножение пар чисел

list1 = [1, 2, 3]
list2 = [4, 5, 6]
products = [number1 * number2 for number1 in list1 for number2 in list2]
print(products)

Вложенный comprehension перебирает все сочетания элементов.

Решение 4. Оценки текстом

grades = [5, 3, 4, 2, 1, 5, 3]
result = []

for grade in grades:
    if grade == 5:
        label = "отлично"
    elif grade >= 3:
        label = "хорошо"
    else:
        label = "неудовлетворительно"
    result.append([grade, label])

print(result)

Обычный цикл здесь читабелен и легко отлаживается.