Помогите со списками, Python

list1 = []
a = "abcdefghijklmnopqrstuvwxyz"

for i in a:
   for j in range(1,27):
       list1.append(i * j)
print(list1) 

введите сюда описание изображения

Помогите, что делать?


Ответы (2 шт):

Автор решения: Danis

используйте enumerate

list1 = []
a = "abcdefghijklmnopqrstuvwxyz"

for i, char in enumerate(a, 1):
   list1.append(char * i)
print(list1) 

либо zip

list1 = []
a = "abcdefghijklmnopqrstuvwxyz"

for i, char in zip(range(1, 27), a):
   list1.append(char * i)
print(list1) 
→ Ссылка
Автор решения: Zhihar

способ 1:

arr = "abcdefghijklmnopqrstuvwxyz"

res = [arr[i] * (i + 1) for i in range(len(arr))]

print(res)

способ 2:

res = [i * (ord(i) - ord('a') + 1) for i in arr]

способ 3:

res = [chr(ord('a') + i) * (i + 1) for i in range(26)]

способ 4:

res = [i[0] * i[1] for i in zip(arr, range(1, 27))]

или

res = [i * j for i, j in zip(arr, range(1, 27))]

способ 5:

res = [(i[0] + 1) * i[1] for i in enumerate(arr)]

или

res = [(i + 1) * j for i, j in enumerate(arr)]

способ 6:

res = [i * (arr.find(i) + 1) for i in arr]

в некоторых способах где есть +1 можно сделать чуть более компактную запись, например так:

res = [i * arr.find(i) + i for i in arr] 
→ Ссылка