繁体   English   中英

python for循环有问题

[英]Having issues with python for loops

因此,显然我应该将这个问题与所有人相关,但这很难做到,因为它与非常特定的问题有关。

我正在使用一个在线教程程序来学习python(我相信是V2),而我的驱使要我引用:

  1. 编写一个for循环,该循环在start_list.append()上进行迭代,每个平方(*(x ** 2)*)平方到square_list
  2. 然后对square_list进行排序。

我仍在尝试绕过列表和循环,如果我遗漏了一些明显的东西,请原谅我

`
start_list = [5, 3, 1, 2, 4]
square_list = []
square_list.append(start_list)
# Your code here!
for square_list in square_list:
    square_list.sort()
print square_list`

上面是我正在使用的脚本。 我遗漏了关于平方的部分,因为我仍在尝试弄清楚应该如何做。 但是,它确实按顺序打印所有5个数字。 尽管如此,我仍然收到错误消息“请确保不要修改start_list”。 我不明白我不打算修改它。

您正在尝试将列表对象追加到列表square_list 那不是你想要的。 您需要附加start_list的内容。 要追加项目,请使用如下循环:

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

此代码会将每个元素的平方添加到square_list 然后, 在循环之外 ,调用square_list上的.sort()方法, square_list进行排序:

square_list.sort()

您没有按照说明进行操作。

编写一个for循环,该循环在start_list和.appends()的每个数字平方成square_list的位置上进行迭代。

以下满足此条件:

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

您遍历start_list。 每个项目将仅是“编号”一次。 您将其平方并添加到square_list。

start_list = [5, 3, 1, 2, 4]
square_list = []
for num in start_list:
    square_list.append(num ** 2)
print sorted(square_list)

在这里使用列表推导是一个更好的主意,您可以对其运行并从现有项目中创建一个新列表,但是您无需通过添加操作来使您的生活复杂化。 您遍历整个列表,仅此而已。

print([item ** 2 for item in start_list])

编辑:对于是必须的:

result_list = []
for item in start_list:
    result_list.append(item**2)
print(sorted(result_list))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM