从数字列表创建最大数字的Python函数

2024-09-29 17:51:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个函数,从数字列表中创建max number。 数字列表=[15,56,2] 我需要结果56215,但结果是15562。 如何让它工作

class Comporator():
    def __init__(self, number):
        self.number = number
        
    def __lt__(self, other):
        result_1 = str(self.number) + str(other.number)
        result_2 = str(other.number) + str(self.number)
        return int(result_1) < int(result_2)


def max_number(list_of_numbers):
    sorted(list_of_numbers, key = Comporator, reverse = True)
    return list_of_numbers 

def print_number(list_of_numbers):
    for i in list_of_numbers:
        print(i, end='')

if __name__ == "__main__":
    list_of_numbers = [int(i) for i in input().split()]
    max_number(list_of_numbers)
    print_number(list_of_numbers)

Tags: ofselfnumber列表def数字resultmax
1条回答
网友
1楼 · 发布于 2024-09-29 17:51:32

您需要将排序(数字列表,key=composator,reverse=True)分配给变量

在代码中进行以下更改

class Comporator():
    def __init__(self, number):
        self.number = number
        
    def __lt__(self, other):
        result_1 = str(self.number) + str(other.number)
        result_2 = str(other.number) + str(self.number)
        return int(result_1) < int(result_2)


def max_number(list_of_numbers):
    list_of_numbers = sorted(list_of_numbers, key = Comporator, reverse = True)
    return list_of_numbers 

def print_number(list_of_numbers):
    for i in list_of_numbers:
        print(i, end='')

if __name__ == "__main__":
    list_of_numbers = [int(i) for i in input().split()]
    list_of_numbers = max_number(list_of_numbers)
    print_number(list_of_numbers)

相关问题 更多 >

    热门问题