排序大数

ytp*_*lai -2 python sorting largenumber

如果在Python中有一个非常大的数字列表,那么编译器就无法将它们的值作为数字得到.是否有一个函数可以更有效地对此列表进行排序(同时将数字保持为整数),例如将数字与数字进行比较?(但不转换为字符串)

daw*_*awg 7

Python 2和Python 3都处理任意大的整数:

>>> [2**34, 2**38, 2**99, 2**122, 2]
[17179869184, 274877906944, 633825300114114700748351602688L, 5316911983139663491615228241121378304L, 2]
Run Code Online (Sandbox Code Playgroud)

并按预期排序:

>>> sorted(_)
[2, 17179869184, 274877906944, 633825300114114700748351602688L, 5316911983139663491615228241121378304L]
Run Code Online (Sandbox Code Playgroud)

(Python 2将显示L大于sys.maxint的整数,如此处的示例,而Python 3显示整数值对于较小或较大的整数相同)