python - 如何使用 for 循环简化 lst = [ x**2 for x in [x**2 for x in range(11)]] 此代码
问题描述
我是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)
推荐阅读
- python - 更改包含最大值和最小值的列python
- shell - 如何在我的计算机重新启动时自动启动您的 docker 服务?
- email - Google Apps 脚本:无法使用 createEvent() 发送电子邮件
- sql - 窗口函数:仅对另一列中的不同值求和
- java - 如何配置 spring 应用程序以在 aws 上使用 IAM 角色(在 AWS ECS 内运行)和在 dev env 上使用凭证?
- php - 如何使用 codeigniter 查询生成器编写“ORDER BY NULL”
- build - 发布流水线设计理念
- c++ - 为什么以下成员初始化程序在 C++ 中不起作用
- javascript - 如何使用 AJAX 请求从本地路径和 JSON 文件获取照片。之后将其附加到 html 标签
- jquery - 使用 jQuery 获取两个 H2 之间的所有 H3