Теория
Таблица — последовательность однотипных строк
В простом текстовом формате каждая строка описывает одну запись, а разделитель отделяет поля. После split получается список строковых значений; нужные столбцы выбирают по индексам и преобразуют.
Смысл индекса задаётся форматом файла. Если столбец балла третий, это должно быть известно до написания цикла, а не угадываться по конкретному примеру.
row = "Ира;15;5"fields = row.split(";")name = fields[0]age = int(fields[1])score = int(fields[2])От строки к общему результату
Обработка таблицы повторяет один конвейер для каждой строки: разделить, преобразовать, проверить условие и обновить результат. Каждая операция имеет своё место и не должна применяться ко всей строке сразу.
Для отладки выведите или запишите поля одной строки и убедитесь, что индексы соответствуют заголовкам.
- split создаёт три поля с индексами 0, 1 и 2.
- Имя остаётся строкой, возраст и балл явно преобразуются в int.
- После преобразования балл можно сравнивать и складывать как число.
Разобранные строки становятся записями
Если к данным нужно вернуться после чтения, каждую строку можно превратить в словарь и добавить в список. После этого сортировка, поиск и фильтрация работают с понятными именами полей, а не с загадочными индексами.
records = []for row in rows: name, age_text, score_text = row.split(";") records.append({ "name": name, "age": int(age_text), "score": int(score_text), }) best_first = sorted(records, key=lambda item: item["score"], reverse=True)Разделитель является частью контракта
Если файл использует точку с запятой, разделение по запятой оставит всю строку одним полем. Ошибка индекса ниже лишь следствие неверно выбранного формата.
Как проверять табличную обработку
Начните с одной строки и подпишите поля. Затем добавьте строку, которая проходит фильтр, и строку, которая его не проходит. Только после этого считайте сумму, количество или максимум.
- Разделите одну строку. Сверьте число и порядок полей.
- Преобразуйте столбцы. Числовые сравнения выполняйте с числами.
- Примените фильтр. Неподходящая строка не должна менять результат.
- Обновите агрегат. Проверьте сумму, количество или лучший элемент вручную.
Практика
Разделите строку на поля
Получается список `Ира`, `15`, `5`. Второе поле с индексом 1 содержит строку `15`.
Выберите нужный столбец
Поля имеют индексы: Москва — 0, 12 — 1, 7 — 2.
Отберите строки
Две строки проходят фильтр: значения 5 и 4 не меньше 4.
Сложите столбец
Накопитель получает 2 + 3 + 4 = 9.
Найдите максимум в таблице
Максимальное значение выбранного столбца — 12.
Итог
Теперь вы можете превратить строки простой таблицы в поля, отобрать нужные записи и вычислить итог.
Составьте таблицу из трёх строк и двух числовых столбцов, затем вручную и программой найдите сумму одного столбца после фильтра.
Прогресс
0 / 5Вы ещё не решали задания