gpt4 book ai didi

python - 整数字符串的自定义比较

转载 作者:行者123 更新时间:2023-11-30 22:04:11 26 4
gpt4 key购买 nike

对于输入3 30 34 5 9,预期的最大数字输出为:9534330

任何输入为什么排序返回与输入相同的结果:3303459

import functools

def compare(item1, item2):
return int(item1 + item2) - int(item2 + item1)

inputList = input().split()
sorted(inputList, key=functools.cmp_to_key(compare))
max = "".join([ x for x in inputList])
print(max)

最佳答案

原因可能是因为您以错误的顺序对列表进行排序,并且您没有使用排序后的列表。目前,您正在按第一位数字升序对列表进行排序。除此之外,sorted() 函数返回一个新列表,因此您需要将其保存在变量中。

您可以通过在排序列表上使用reverse()来解决这个问题

import functools

def compare(item1, item2):
return int(item1 + item2) - int(item2 + item1)

inputList = input().split()
inputList = sorted(inputList, key=functools.cmp_to_key(compare))
inputList.reverse()
max = "".join([ x for x in inputList])
print(max)

或者在compare()函数中切换操作

import functools

def compare(item1, item2):
return int(item2 + item1) - int(item1 + item2)

inputList = input().split()
inputList = sorted(inputList, key=functools.cmp_to_key(compare))
max = "".join([ x for x in inputList])
print(max)

关于python - 整数字符串的自定义比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53388492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com