Распечатайте кортеж, в котором каждый символ алфавита повторяется столько раз, сколько его позиция. - PullRequest
1 голос
/ 26 мая 2020

Я хочу напечатать кортеж ('a','bb','ccc','dddd'....), который заканчивается 26 копиями письма 'z'.

Я использую for l oop для печати. Но сначала мне нужно составить список, а затем преобразовать его в кортеж. Могу ли я превратить его непосредственно в кортеж?

Вот мой код:

l = list()
c = 1
for a in range(97, 123):
    l.append(chr(a)*c)    
    c = c+1
print(l)
t = tuple(l)
print(t)

Ответы [ 2 ]

1 голос
/ 27 мая 2020
e = ()
for s in range(97, 123):
  e = e + (s, )
print(e)
1 голос
/ 27 мая 2020

Вы можете построить кортеж напрямую, используя конструктор tuple и генератор.

>>> from string import ascii_lowercase
>>> offset = ord('a') - 1
>>> print(tuple(c*(ord(c) - offset) for c in ascii_lowercase))
('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')

К сожалению, вы не можете построить кортеж результатов, добавляя к нему подрешения, поскольку неизменный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...