Изменение списка в 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)
→ Ссылка