Хорошо. Ниже задачи, где enumerate() нужно применять не «в лоб», а вместе с условиями, строками, вложенными структурами и логикой.
- Найти все ошибки
Дан список логов:
logs = [
"INFO Server started",
"ERROR Database failed",
"INFO User logged in",
"ERROR Invalid password",
"WARNING Disk almost full"
]
Выведи номера строк (с 1) и текст только для ошибок (ERROR).
Ожидаемый вывод:
2: ERROR Database failed
4: ERROR Invalid password
⸻
- Найти самый длинный элемент
Дан список:
words = ["python", "java", "javascript", "go", "rust"]
Найди индекс самого длинного слова и само слово.
Ожидаемый результат:
2 javascript
Условие: пройти список один раз через enumerate().
⸻
- Замена элементов по индексу
Дан список:
numbers = [10, 20, 30, 40, 50, 60]
Создай новый список, где:
- элементы на чётных индексах умножаются на 2
- на нечётных — делятся на 2
Ожидаемый результат:
[20, 10.0, 60, 20.0, 100, 30.0]
Используй enumerate().
⸻
- Проверка «сломанных» данных
Дан список:
data = ["42", "15", "abc", "99", "hello", "100"]
Выведи индекс и значение всех элементов, которые не являются числом.
Ожидаемый вывод:
2 abc
4 hello
⸻
- Матрица + enumerate
Дан список списков:
matrix = [
[5, 2, 9],
[1, 8, 4],
[7, 3, 6]
]
Выведи координаты и значение всех чисел больше 5.
Ожидаемый вывод:
0 2 -> 9
1 1 -> 8
2 0 -> 7
2 2 -> 6
Подсказка: понадобится двойной enumerate().
⸻
- Почти реальная задача
Дан список пользователей:
users = [
{"name": "Alex", "active": True},
{"name": "John", "active": False},
{"name": "Kate", "active": True},
{"name": "Mike", "active": False}
]
Выведи номер пользователя (с 1) и имя только неактивных.
Ожидаемый вывод:
2 John
4 Mike
⸻
- Сложнее
Дана строка:
text = "abracadabra"
Выведи все индексы, где встречается буква "a".
Ожидаемый вывод:
0
3
5
7
10
Условие: только enumerate(), без find() и index().
⸻
- Уровень «подумать»
Дан список:
nums = [4, 9, 16, 25, 30, 36, 49]
Выведи индекс и число только для идеальных квадратов, которые делятся на 2.
Ожидаемый вывод:
0 4
2 16
5 36
Без заранее заданного списка квадратов. Используй вычисление.