#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, поэтому она печатает каждую итерацию, а не окончательный список.