问题描述
我是 Python 的新学习者。尝试使用 for 循环编写以下代码
lst = [ x**2 for x in [x**2 for x in range(11)]]
我是这样试的
lst = []
for x in lst:
lst.append(x)
for x in range(0,11):
lst.append(x)
解决方法
你的错误是认为这里有嵌套循环。外部理解在内部理解创建的未命名列表上循环。在这里,我将其命名为 _scratch
。
_scratch = []
lst = []
for x in range(11):
_scratch.append(x**2)
for x in _scratch:
lst.append(x**2)
但是我们可以看到这可以简化,去掉第二个循环
lst = []
for x in range(11):
lst.append((x**2)**2)
并且知道一些算术,可以进一步简化
lst = []
for x in range(11):
lst.append(x**4)