Как вернуть все значения 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))]
→ Ссылка