kateli1991

对大数排序



如果在Python中有一个非常大的数字的列表,那么编译器就不能将它们作为数字来获取。是否有一个函数可以以更有效的方式对这个列表进行排序(同时将数字保持为整数),例如将数字与数字进行比较?(但不转换为字符串)


已被浏览了1399次
6 日,19 小时 之前提问
2 个回答
fefe Tyson

这将是一个适用于其他语言的解决方案。你可以有一个整数列表。所以基本上,给定一个像123456789这样的数字,可以表示为

bigNum = [[1,2,3],[4,5,6],[7,8,9]]

可以通过以下方法比较大的数字:

  • 比较位数
  • 如果位数相等,比较从最大位数开始的数字。在
评论 - 2020年7月29日 10:44
fefe Tyson

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

>>> [2**34, 2**38, 2**99, 2**122, 2]
[17179869184, 274877906944, 633825300114114700748351602688L, 5316911983139663491615228241121378304L, 2]

并按预期进行排序:

^{2}$

(Python2将为大于的整数显示L系统最大值在这里的示例中,python3显示的整数值与较小或较大的整数相同)

评论 - 2020年7月29日 10:44

最新Python问答

推荐Python问答