如何使用for循环简化lst = [ x**2 for x in [x**2 for x in range(11)]] 这段代码使用for循环

问题描述

我是 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...