【发布时间】:2016-12-24 17:26:01
【问题描述】:
我认为这是一个非常简单的问题,但我得到了错误的答案。我正在在线课程中做 python 编程练习,我试图将这段代码转换为循环。
x = [y for i in range(300)]
我的回答:
counter=0
while counter<300:
x=y
counter+=1
这两者有什么区别?
如何将第一个 sn-p 转换为第二个?
【问题讨论】:
-
x 需要是一个列表,并且在您的“翻译”中,它不是一个列表(此外,如果您正在使用列表,
=不是您想要的,而是append),并且您只是用 y 覆盖 x。但是,您也从未将 y 声明为任何东西,因此这在语法上也是不正确的。这是您正在处理的确切代码吗?您的理解也是不正确的。 -
x = list(range(300))更好。但这已经大错特错了:x = [y for i in range(300)] -
另一个不让你满意的答案:
x = [y] * 300。方法:将非常高效的代码转换为低效的循环 + 追加。仅用于教育目的。否则使用我的 sn-p。 -
i = 0; x = []; while i < 300: (newline, indent) x.append(y) (newline, indent) i += 1. -
@Prethia 我明白你的意思,但对于像
int这样的不可变类型来说并非如此。
标签: python loops list-comprehension