用 Python 编写一个程序,对给定列表中的所有元素进行排序,并将它们合并为一个字符串
pythonserver side programmingprogramming更新于 2026/1/11 18:20:17
假设我们得到了一个正整数列表。我们必须按降序对列表进行排序,然后必须将其中的所有元素连接起来形成一个字符串。我们返回连接后的字符串。
因此,如果输入类似于 input = [415, 78, 954, 123, 5],则输出将是 954785415123
为了解决这个问题,我们将遵循以下步骤 −
- 定义一个函数 cmp() 。这将采用 l, r
- 如果 ((l) 的字符串表示 + (r) 的字符串表示) 的整数值 > ((r) 的字符串表示 + (l) 的字符串表示) 的整数值,则
- 返回 1
- 否则,
- 返回 -1
- 如果 ((l) 的字符串表示 + (r) 的字符串表示) 的整数值 > ((r) 的字符串表示 + (l) 的字符串表示) 的整数值,则
- 根据函数 compare 对列表输入进行排序
- 将输入中的所有元素连接成一个字符串并返回。
示例
让我们看看下面的实现以便更好地理解 −
from functools import cmp_to_key def cmp(l, r): if int(str(l) + str(r)) > int(str(r) + str(l)): return 1 else: return -1 def solve(input): input.sort(key=cmp_to_key(cmp), reverse=True) return "".join(map(str, input)) print(solve([415, 78, 954, 123, 5]))
输入
[415, 78, 954, 123, 5]
输出
954785415123
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

