在Python中编写一个程序,将给定列表中的所有元素排序并合并为一个字符串

在Python中编写一个程序,将给定列表中的所有元素排序并合并为一个字符串

假设我们有一个正整数列表。我们必须将列表按降序排序,然后将所有元素连接在一起形成一个字符串。我们返回连接的字符串。

所以,如果输入是input = [415, 78, 954, 123, 5],那么输出将是954785415123。

为了解决这个问题,我们将遵循以下步骤 −

  • 定义一个函数cmp()。 这将采取l,r
    • 如果(l的字符串表示+ r的字符串表示的整数值)>(r的字符串表示+ l的字符串表示的整数值)的整数值,则
      • 返回1
    • 否则,
      • 返回-1
  • 将列表input按照函数compare进行排序
  • 将input中的所有元素连接成一个字符串并返回它。

示例

让我们看下面的实现,以获得更好的理解−

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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程