Изменение списка в python
Дан список:
list = [1, 3, 15, 600, 4]
Условие: необходимо после каждого однозначного числа в списке вставить ещё одно такое же.
Мое решение:
for x, y in enumerate(list):
if len(str(y)) == 1:
list.insert(x + 1, y)
print(list)
В результате получается бесконечный цикл и до меня просто не доходит, как это исправить. Разъясните пожалуйста, что я делаю не так?
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Поправка - забыл про "однозначные"
l = [1, 3, 15, 600, 4]
print([x for x in l for i in range(1 + int(x<10))])
>>> [1, 1, 3, 3, 15, 600, 4, 4]
Если непременно нужно использовать вставку в тот же список, то проще идти с конца:
n = len(l)
for i, x in enumerate(reversed(l)):
if x < 10:
l.insert(n-i, x)