Python

Задачи на списки Python

Списки в Python нужны почти в каждой учебной и рабочей задаче: хранить числа, строки, товары, пользователей, результаты проверки

В этой подборке задачи идут от простого прохода по списку к фильтрации, поиску, сортировке и разбиению данных на группы

Как работать с подборкой

Главная цель — научиться выбирать между проходом по списку, фильтрацией, поиском и сортировкой

Перед просмотром решения попробуйте написать хотя бы черновик. Если задача не идет, выпишите входные данные, ожидаемый результат и одно действие, которое нужно сделать первым

После решения измените данные и запустите код снова. Так вы быстрее увидите, где программа привязана только к одному примеру

Задачи с решениями

Задача 1. Сумма элементов списка

Условие: Дан список чисел, выведите сумму без встроенной функции sum

Подсказка: Пройдите по списку циклом и накопите total

Решение:

numbers = [3, 5, 2, 10]
total = 0

for number in numbers:
    total += number

print(total)

Проверка: Сравните результат с sum(numbers)

Задача 2. Только положительные числа

Условие: Из списка чисел соберите новый список только с положительными значениями

Подсказка: Не удаляйте элементы из исходного списка во время обхода

Решение:

numbers = [-3, 0, 5, 8, -1]
positive = []

for number in numbers:
    if number > 0:
        positive.append(number)

print(positive)

Проверка: Результат должен быть [5, 8]

Задача 3. Максимум без max

Условие: Найдите максимальное число в непустом списке без функции max

Подсказка: Начните с первого элемента, затем сравнивайте остальные

Решение:

numbers = [4, 9, 1, 12, 7]
largest = numbers[0]

for number in numbers:
    if number > largest:
        largest = number

print(largest)

Проверка: Проверьте список из одного элемента

Задача 4. Среднее списка

Условие: Посчитайте среднее значение чисел в списке

Подсказка: Сначала проверьте, что список не пустой

Решение:

numbers = [10, 20, 30]

if numbers:
    average = sum(numbers) / len(numbers)
    print(average)
else:
    print("Список пуст")

Проверка: Для [10, 20, 30] результат должен быть 20

Задача 5. Слова длиннее трех букв

Условие: Оставьте в новом списке только слова длиннее трех символов

Подсказка: len работает и со строками, и со списками

Решение:

words = ["кот", "python", "дом", "список"]
long_words = []

for word in words:
    if len(word) > 3:
        long_words.append(word)

print(long_words)

Проверка: Результат должен содержать python и список

Задача 6. Индексы отрицательных чисел

Условие: Найдите индексы всех отрицательных чисел

Подсказка: enumerate дает и индекс, и значение

Решение:

numbers = [4, -2, 0, -7, 9]
indexes = []

for index, number in enumerate(numbers):
    if number < 0:
        indexes.append(index)

print(indexes)

Проверка: Результат должен быть [1, 3]

Задача 7. Удалить дубликаты с сохранением порядка

Условие: Соберите список уникальных значений в исходном порядке

Подсказка: Для маленькой задачи можно проверять через in

Решение:

numbers = [1, 2, 1, 3, 2, 4]
unique = []

for number in numbers:
    if number not in unique:
        unique.append(number)

print(unique)

Проверка: Результат должен быть [1, 2, 3, 4]

Задача 8. Объединить два списка попарно

Условие: Даны имена и баллы, соберите список строк имя: балл

Подсказка: zip идет по двум спискам одновременно

Решение:

names = ["Анна", "Иван", "Оля"]
scores = [90, 75, 88]
result = []

for name, score in zip(names, scores):
    result.append(f"{name}: {score}")

print(result)

Проверка: Проверьте списки разной длины и посмотрите поведение zip

Задача 9. Сортировка по длине слова

Условие: Отсортируйте список слов по длине

Подсказка: key=len передает сортировке правило сравнения

Решение:

words = ["python", "go", "javascript", "sql"]
words.sort(key=len)
print(words)

Проверка: Самое короткое слово должно оказаться первым

Задача 10. Найти первое подходящее число

Условие: Найдите первое число больше 10 и остановите цикл

Подсказка: break завершает цикл сразу после найденного значения

Решение:

numbers = [3, 8, 12, 5, 20]

for number in numbers:
    if number > 10:
        print(number)
        break

Проверка: Результат должен быть 12, а не 20

Задача 11. Разделить числа на две группы

Условие: Разложите числа на четные и нечетные списки

Подсказка: Создайте два списка и добавляйте число в нужный

Решение:

numbers = [1, 2, 3, 4, 5, 6]
even = []
odd = []

for number in numbers:
    if number % 2 == 0:
        even.append(number)
    else:
        odd.append(number)

print(even)
print(odd)

Проверка: Проверьте, что каждое число попало ровно в один список

Задача 12. Список квадратов

Условие: Создайте список квадратов чисел от 1 до 10

Подсказка: Сначала решите через обычный цикл, потом можно через list comprehension

Решение:

squares = []

for number in range(1, 11):
    squares.append(number ** 2)

print(squares)

Проверка: Последний элемент должен быть 100

По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы

Как проверять свои решения

Для каждой задачи сделайте минимум три запуска: обычный пример, крайний пример и пример с неожиданными данными. Для чисел это может быть ноль или отрицательное значение, для строк — пустая строка, для списков — пустой список или повторяющиеся элементы

Если код работает, объясните его словами. Скажите, какие данные приходят на вход, что хранится в переменных, где меняется результат и почему программа останавливается

Частые ошибки новичков

  • читать решение, но не запускать его руками
  • менять сразу несколько строк и не понимать, какая из них сломала код
  • называть переменные одной буквой там, где можно написать понятное имя
  • забывать проверять пустые строки, пустые списки и ноль
  • путать вывод через print и возврат результата через return
  • оставлять код рабочим только для одного заранее выбранного примера

Дополнительные задачи

Задача 13. Второй список квадратов

Условие: Из списка чисел создайте список квадратов

numbers = [1, 2, 3, 4]
squares = []

for number in numbers:
    squares.append(number ** 2)

print(squares)

Проверка: Добавьте ноль и отрицательное число

Задача 14. Общие элементы двух списков

Условие: Найдите элементы, которые есть в обоих списках

first = ["python", "html", "css"]
second = ["js", "python", "sql"]
common = []

for item in first:
    if item in second:
        common.append(item)

print(common)

Проверка: Добавьте повтор и решите, должен ли он попадать в результат дважды

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x