我想指定一个大整数序列(有很多零),如:
a = [1e13, 1e14, 1e19, ...]
Run Code Online (Sandbox Code Playgroud)
我的直觉是使用科学记数法.但在python中,它是一个浮点而不是整数.有没有一种简单的方法在python中编写这些整数文字而不写入所有的零,因为确保零的数量是正确的噩梦.
我相信我可以使用浮点数转换为整数int,但只是想知道是否有更好的方法?
使用*and **,它并不美观,但会给出正确的结果。
print(2e10)
20000000000.0
print(2*10**10)
20000000000
Run Code Online (Sandbox Code Playgroud)
您还可以生成一个完整列表,如下所示:
result = []
for i in range(5):
result.append(1*10**i)
>>> result
[1, 10, 100, 1000, 10000]
Run Code Online (Sandbox Code Playgroud)
如果你真的想使用科学记数法,那么
result = []
for n in range(5):
result.append(int(float(f"1e{n}"))) #converting to int directly gives: ValueError: invalid literal for int() with base 10: '1e0'
>>> result
[1, 10, 100, 1000, 10000]
Run Code Online (Sandbox Code Playgroud)