python - 使用列表推导将数字加倍,直到达到 x
问题描述
我已经生成了下面的代码。但是,我想找到一种更 Pythonic 的方式,使用列表推导或 Lambda 来编写代码。
n = 84
trillion = [n * 2, n *= 2 while n <= 1000000000000]
或者
lambda n: n*=2 while n <= 1000000000000
number = 84
while number <= 1000000000000:
print (number * 2)
number *= 2
168
336
772
解决方案
我不确定为什么在不涉及列表的情况下需要列表理解。但是,您可以简单地使用对数来计算最终结果。我还建议您使用10 ** 12
or1_000_000_000_000
而不是1000000000000
使其更具可读性:
import math
number = 84
number *= 2 ** int(math.log2(10 ** 12 / number))
print(number)
721554505728
推荐阅读
- html - 是否可以保存另一个网站的修改后的 css/html?
- bbedit - BBEdit 中的 R 型块引用
- python - 如何在 Python 中动态访问对象的属性?
- python - CNN pytorch:如何选择参数并在层之间流动
- c++ - c++方法中的静态bool变量
- wpf - ContentPresenter 在触发器调用两次以上后失去数据绑定
- python - 如何清晰地绘制大型网络
- python - 更新配置文件时出现找不到页面错误
- android - 使用设备凭据时,AuthenticationCallback 中的 Android 生物识别身份验证无效变量
- python - YOLO如何保存视频