Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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_Python 3.x_Python Extensions - Fatal编程技术网

在python扩展中安全地处理大量数据

在python扩展中安全地处理大量数据,python,python-3.x,python-extensions,Python,Python 3.x,Python Extensions,由于Python3对int的大小没有上限。我想处理150+十进制数字的巨大int 这比保证的无符号long要大得多,所以我认为我不能依赖PyLong_aslong来操纵它 如何对传递给我的C扩展方法的如此大的整数执行数学运算?只需将它们作为Python整数处理,并使用像和这样的Python算术运算即可。不要试图转换为机器整数 现在,如果你希望通过在C中这样做来获得任何速度优势,那么,这是不会发生的。如果要优化大整数运算,请尝试更高效的bignum库,如。确保您的算法也是有效的-无论使用的是整数实

由于Python3对int的大小没有上限。我想处理150+十进制数字的巨大int

这比保证的
无符号long
要大得多,所以我认为我不能依赖
PyLong_aslong
来操纵它

如何对传递给我的C扩展方法的如此大的整数执行数学运算?

只需将它们作为Python整数处理,并使用像和这样的Python算术运算即可。不要试图转换为机器整数

现在,如果你希望通过在C中这样做来获得任何速度优势,那么,这是不会发生的。如果要优化大整数运算,请尝试更高效的bignum库,如。确保您的算法也是有效的-无论使用的是整数实现,代码审查问题中的
\u reverseBits
都是非常低效的。

只需将它们作为Python int处理,并使用像和这样的Python算术运算即可。不要试图转换为机器整数


现在,如果你希望通过在C中这样做来获得任何速度优势,那么,这是不会发生的。如果要优化大整数运算,请尝试更高效的bignum库,如。确保你的算法也是有效的-无论使用的是整数实现,你的代码审查问题中的
\u reverseBits
都是非常低效的。

谢谢,我不知道所有PyNumber东西的存在。我想说他们的
\u reverseBits
的算法效率没有那么差,曼纽尔:是的,仔细看,他们如何处理
比特流
似乎是一个更大的问题。这个算法真的需要按照位序列而不是大的数字来工作。谢谢,我不知道所有PyNumber的存在。我想说他们的
\u reverseBits
的算法效率并没有那么差,因为他们显然只在很小的数字上使用它。@Manuel:是的,仔细看,看起来他们如何处理
比特流
是一个更大的问题。这个算法真的需要按照位序列而不是bignums来工作。。。您输入1000000多个数字,现在您将150多个数字称为“巨大”?:-P@Manuel罗茂,很高兴见到你。我只是从中随机抽取了一个结果实际上,这是一个较小的列表。嗯。。。您输入1000000多个数字,现在您将150多个数字称为“巨大”?:-P@Manuel罗茂,很高兴见到你。我只是从中随机抽取了一个结果事实上,这是一个较小的列表。