[英]Python List Comprehensions
我正在学习python3列表理解。 我理解如何格式化列表理解:[equation,for loop,if if statement for filtering],但我无法弄清楚如何将三行代码压缩成'equation'部分的单个等式。
我正在取一个数字并将其添加到自身,然后将结果添加到自身,依此类推,在列表中创建一系列数字。
我可以通过声明x = 1然后循环以下来完成此操作:
y = x + x
x = y
任何人都可以帮我把它变成一个单行方程式,如果可能的话,我可能会研究哪些资源来帮助我解决这个问题?
您的算法相当于乘以2的幂:
x = 3
res = [x * 2**i for i in range(10)]
# [3, 6, 12, 24, 48, 96, 192, 384, 768, 1536]
要了解为什么会出现这种情况,请注意您在for
循环的每次迭代中将起始数乘以2:
x = 3
res = [x]
for _ in range(9):
y = x + x
x = y
res.append(y)
print(res)
# [3, 6, 12, 24, 48, 96, 192, 384, 768, 1536]
正如@timgeb所提到的,你不能在你进行时引用列表理解的元素,因为在理解完成之前它们是不可用的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.