преобразование списка с определенной функцией в кубе на python

#python #list #loops #for-loop #defined

Вопрос:

Я создал список диапазонов — [2, 4, 6, 8, 10]

     RangeList = list(range(2,11,2))
    RangeList

   [2, 4, 6, 8, 10]
 

Мне нужно преобразовать этот список в[8, 64, 216, 512, 1000]
Критерии, с которыми я работаю:

-используйте цикл for и функцию «cubed», определенную для преобразования приведенного выше списка в

-[8, 64, 216, 512, 1000]

 def cubed(x):
y = x**3
print('  %s'%(y))
return(y)

for x in RangeList:
cubed(x)

 8
64
216
512
1000
 

Чего мне не хватает в моем коде, чтобы представить это в виде прямого списка с запятыми.

Комментарии:

1. results_list = [x**3 for x in RangeList]

2. Я попробовал это, и это все еще представляет int таким же образом

3. Не печатайте results_list по пунктам, просто используйте print(results_list)

Ответ №1:

Вы можете составить список и добавлять его один за другим, используя для цикла, подобного этому:

 l=[]
for x in RangeList:
    l.append(cubed(x))
print(l)
 

или вы можете использовать понимание списка.

 l = [cubed(x) for x in RangeList]
 

Ответ №2:

Вам нужно использовать пустой список перед циклом. И используйте .append(). Или вы можете использовать понимание списка, как в комментарии.

 RangeList = list(range(2,11,2))
def cubed(x):
    y = x**3
    return(y)

newList = []
for x in RangeList:
   newList.append(cubed(x))
print(newList)
 

Ответ №3:

Замените петлю for на

 RangeList = list(range(2,11,2))
CubedList = [x**3 for x in RangeList]
CubedList
 

Комментарии:

1. это, кажется, возвращает тот же результат

2. Вот измененная версия, как кто-то сказал, вы печатаете в функции cubed, поэтому она печатает каждую итерацию, а не окончательный список.