@tbltv

Как написать программу, выводящую следующий список: ['a', 'bb', 'ccc', 'dddd', 'eeeee', 'ffffff', ...]?

Надо написать программу, выводящую следующий список:

['a', 'bb', 'ccc', 'dddd', 'eeeee', 'ffffff', ...]

Пишу вот такой код:

abc = 'abcdefghijklmnopqrstuvwxyz'
ls = []
for i in range(0, len(abc)):
    ls.append(abc[i+1])
print(ls)

Выходит:

IndexError: string index out of range

Что делаю не так?
  • Вопрос задан
  • 3435 просмотров
Пригласить эксперта
Ответы на вопрос 4
SoreMix
@SoreMix Куратор тега Python
yellow
В списке 26 элементов, их индексы от 0 до 25.
Когда в цикле переменной i присваивается значение 25, то abc[i+1] пытается получить элемент с индексом 26, которого не существует в списке.

Но, помимо этого, решение в целом не правильное.
Я бы сделал как-то так
abc = 'abcdefghijklmnopqrstuvwxyz'
ls = [char*count for char, count in enumerate(abc, 1)]
print(ls)
Ответ написан
0xD34F
@0xD34F
IndexError: string index out of range

А как иначе-то? Не надо было + 1 делать.

Ну и конечно, можно обойтись без строки с алфавитом:

print([ chr(i + 96) * i for i in range(1, 27) ])
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Ну и я уж :-)
import string
print([c*i for i,c in enumerate(string.ascii_lowercase,1)])

['a', 'bb', 'ccc', 'dddd', 'eeeee', 'ffffff', 'ggggggg', 'hhhhhhhh', 'iiiiiiiii', 'jjjjjjjjjj', 'kkkkkkkkkkk', 'llllllllllll', 'mmmmmmmmmmmmm', 'nnnnnnnnnnnnnn', 'ooooooooooooooo', 'pppppppppppppppp', 'qqqqqqqqqqqqqqqqq', 'rrrrrrrrrrrrrrrrrr', 'sssssssssssssssssss', 'tttttttttttttttttttt', 'uuuuuuuuuuuuuuuuuuuuu', 'vvvvvvvvvvvvvvvvvvvvvv', 'wwwwwwwwwwwwwwwwwwwwwww', 'xxxxxxxxxxxxxxxxxxxxxxxx', 'yyyyyyyyyyyyyyyyyyyyyyyyy', 'zzzzzzzzzzzzzzzzzzzzzzzzzz']
Ответ написан
@IvanU
abc = 'abcdefghijklmnopqrstuvwxyz'
ls = []
for i in range(0, len(abc)):
ls.append(abc[i] * (i + 1))
print(ls)

Есть такой вариант
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы