Как вернуть все значения i в цикле for
Это задача с Codewars
Мне нужно вернуть массив n кратных x
count_by(2,5) должен возвращать [2,4,6,8,10]
count_by(1,10) #should return [1,2,3,4,5,6,7,8,9,10]
Мне нужно вернуть все значения i в данном цикле, я не понимаю механизм for, если я пишу return внутри цикла он возвращает первый элемент i, если я пишу return уже после цикла for он возвращает только последний i. Как мне правильно написать цикл чтобы вернуть все элементы
def count_by(x, n):
for i in range(1,n):
i = i * x
return (i)
Ответы (3 шт):
Автор решения: MBo
→ Ссылка
Вам нужно создать список, добавлять в него элементы, и вернуть список. Обратите также внимание на верхнюю границу range
def count_by(x, n):
res = []
for i in range(1,n+1):
res.append(i * x)
return res
Более питонически - использовать генератор списков:
def count_by(x, n):
return [i*x for i in range(1,n+1)]
Автор решения: Андрей Пристягин
→ Ссылка
Попробуй это, может не очень красиво но ты же в кодварс а не на собеседовании)
def count_by(x, n):
returns=[]
for i in range(x, n*x+x, x):
returns.append(i)
return returns
Автор решения: TigerTV.ru
→ Ссылка
Можно так:
def count_by(x, n):
return [*range(x, x*n+1, x)]
или немножко подлиннее и помедленнее, но и так можно:
def count_by(x, n):
return [*map(x.__mul__, range(1, n+1))]