Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中整数列表的科学表示法_Python - Fatal编程技术网

python中整数列表的科学表示法

python中整数列表的科学表示法,python,Python,我有一个整数列表,我用它作为图表上的标签,我需要用科学符号来表示它们。我看到的大多数其他问题都与浮点值有关,当数字为23.16274586938时,但我的数字范围为2600000000到2900000000,需要将它们表示为2.61e^8或其他值。我尝试过使用十进制,{.2E},但它们都不适合我。列表中大约有50k个值,每个值大约有12位数字 我在网上找到的解决方案只有在你有一个单一价值时才有效。在迭代列表时不是这样 我的清单看起来像 x=[516000000000637200000000003

我有一个整数列表,我用它作为图表上的标签,我需要用科学符号来表示它们。我看到的大多数其他问题都与浮点值有关,当数字为23.16274586938时,但我的数字范围为2600000000到2900000000,需要将它们表示为2.61e^8或其他值。我尝试过使用十进制,{.2E},但它们都不适合我。列表中大约有50k个值,每个值大约有12位数字

我在网上找到的解决方案只有在你有一个单一价值时才有效。在迭代列表时不是这样

我的清单看起来像

x=[51600000000063720000000000326730000000003400000000000,…]表示50k值

"{:.2e}".format(arr_of_frequencies[i])
使用这个,其中arr_of_frequencies是我的列表,或者它的一些变体给出了错误

IndexError: cannot fit 'int' into an index-sized integer

您可以使用
str.format()
以科学记数法打印数字

对以“{:e}”作为str的数字使用
str.format()
,以科学记数法格式化数字

要仅在小数点后包含一定数量的位数,请使用“{:.Ne}”,其中N是所需的位数

您可以进一步阅读有关格式的内容

例如:

>>> "{:e}".format(1234566723425254342)
>>> '1.234567e+18'

对于非常大的列表,您可以尝试使用惰性求值进行转换:

>>> data = open("data.txt", 'r').read()
>>> def reverse(data):
...     for index in range(len(data)):
...             yield "{e}".format(data[index])
...
>>>
>>> for x in reverse(data):
...     print(x)

3.400000e+12
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
.......50000 entries worked

您可以使用
str.format()
以科学记数法打印数字

对以“{:e}”作为str的数字使用
str.format()
,以科学记数法格式化数字

要仅在小数点后包含一定数量的位数,请使用“{:.Ne}”,其中N是所需的位数

您可以进一步阅读有关格式的内容

例如:

>>> "{:e}".format(1234566723425254342)
>>> '1.234567e+18'

对于非常大的列表,您可以尝试使用惰性求值进行转换:

>>> data = open("data.txt", 'r').read()
>>> def reverse(data):
...     for index in range(len(data)):
...             yield "{e}".format(data[index])
...
>>>
>>> for x in reverse(data):
...     print(x)

3.400000e+12
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
3.267230e+14
3.400000e+12
5.160000e+12
6.372000e+13
.......50000 entries worked

这将取决于您使用的图形库(您没有告诉我们)。图表JS用于图形,烧瓶用于输入这将取决于您使用的图形库(您没有告诉我们)。图表JS用于图形,烧瓶用于输入良好。你能不能以文本而不是图像的形式提供代码?我试过了,它给我的错误是“IndexError:无法将'int'放入索引大小的整数”我试过了,数字超过20位,它正在工作,你是哪一版本的pythonusing@trincot,谢谢你的建议。我已经添加了一个示例作为文本,以便更好地理解和理解,当您知道其价值是什么时,该示例就会起作用。或者可以放入一个变量,但在尝试遍历列表时无法正常工作。你能不能以文本而不是图像的形式提供代码?我试过了,它给我的错误是“IndexError:无法将'int'放入索引大小的整数”我试过了,数字超过20位,它正在工作,你是哪一版本的pythonusing@trincot,谢谢你的建议。我已经添加了一个示例作为文本,以便更好地理解和理解,当您知道其价值是什么时,该示例就会起作用。或者可以放入单个变量,但在尝试遍历列表时不起作用