python - 撤消python列表理解
问题描述
这段python代码是列表理解的一个例子
lst = [ x**2 for x in [x**2 for x in range(11)]]
# [0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000]
如果它不在列表理解中,该怎么写?
我的理解是生成的列表是范围(11)中每个数字的平方的平方。所以我明白这是如何获得第一部分:
lst = []
for item in range(11):
lst.append(item**2)
print(lst)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是我怎样才能得到第二部分呢?
解决方案
lst = [ x**2 for x in [x**2 for x in range(11)]]
# equivalent to:
squares = []
squares2 = []
for x in range(11):
squares.append(x**2)
for item in squares:
squares2.append(item**2)
print(squares2)
print(squares2==lst)
输出:
[0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000]
True
推荐阅读
- azure-devops - 用于创建发布定义的 Azure DevOps REST API
- python - 导入文本夹具时符合 PEP8 的编码样式 (F401 + F811)
- python - Pandas 剪切功能提供的类别比预期的要少
- wordpress - Wordpress - 空白边距
- mysql - 我尝试加入两个表,但另一个表名在第一个表的列中。可以加入还是有
- sql-server - 无法加载文件或程序集“Microsoft.AnalysisServices.AdomdClientUI”
- excel - 图片周围的VBA Excel边框
- python - 用于计算增值税回报的 TKinter 程序“不能将序列乘以“浮点”类型的非整数
- python - 使用 MySQL 容器对 Django 应用程序进行 Dockerize
- c++ - 如何使用算法将十进制数转换为二进制数