2

我正在尝试通过代码学院学习 python,任务是“编写一个 for 循环,用 start_list 中每个项目的平方 (x ** 2) 填充 square_list 的项目。然后对 square_list 进行排序!”

提示说有一个 for 循环、一个附加函数和一个排序函数,我相信我正确使用了这些函数。

 start_list = [5, 3, 1, 2, 4]
 square_list = []

 for start_list in square_list: 
     square_list.append(start_list**2)
     sort(square_list)
 print square_list

我收到此错误消息:“糟糕,再试一次!squareList 的长度应该与 startList 相同!”

我也尝试过使用 square_list.insert(0, start_list**2) 但这也给出了同样的错误。非常感谢您的帮助,因为我被卡住了

4

4 回答 4

2

您的代码有几处问题。

for start_list in square_list: 
    square_list.append(start_list**2)
    sort(square_list)

在第一行你有for start_list in square_list:. 这就是说“我想在循环中为每个start_listin做一些事情square_list。问题是这些是两个单独的列表。您想创建一个新变量来代表 中的每个项目start_list。前两行应该类似于:

for x in start_list: 
    square_list.append(x ** 2)

这是循环遍历每个( x)start_list并将其平方附加到square_list.

第二个问题是线路sort(square_list)。这不应该缩进,因为这使得它每次都通过循环执行。此外,对列表进行排序的语法是square_list.sort(). 所以这三行应该是:

for x in start_list: 
    square_list.append(x ** 2)
square_list.sort()
于 2013-07-15T18:28:32.970 回答
2

您需要遍历每个元素start_list

for item in start_list:            # for each element in `start_list`
    square_list.append(item ** 2)  # add square of `item` in `square_list`

square_list.sort();                # finally sort the list

或者你可以使用sorted()函数而不是generator表达式:

>>> sorted(item ** 2 for item in start_list)
于 2013-07-15T18:21:20.347 回答
0

我认为你在循环中犯了一个错误。尝试这个:

start_list = [5, 3, 1, 2, 4]
square_list = []

for number in start_list: 
    square_list.append(number**2)


sort(square_list)
print square_list
于 2013-07-15T18:26:57.413 回答
0
start_list = [5, 3, 1, 2, 4]
square_list = []

# Your code here!

for x in start_list:
   square_list.append(x ** 2)
   square_list.sort()
print square_list
于 2015-05-28T03:06:21.667 回答