通过比较Python中列表元素的值来比较列表

通过比较Python中列表元素的值来比较列表,python,Python,我是Python新手,需要一些项目的帮助。我试图比较两个数字列表中哪个更大,例如[1,2,3,4,5,6]和[6,5,4,3,2,1]。当列表的长度相同时,我需要从左到右扫描列表,逐位比较。我想从for循环开始,但我不确定如何实现它。您可以使用带有参数键的内置函数max: l1 = [1,2,3,4,5,6] l2 = [6,5,4,3,2,1] max([l1, l2], key=lambda x: (len(x), x)) 或者您可以使用(由@Ch3steR建议): 你是说你基本上需要比

我是Python新手,需要一些项目的帮助。我试图比较两个数字列表中哪个更大,例如
[1,2,3,4,5,6]
[6,5,4,3,2,1]
。当列表的长度相同时,我需要从左到右扫描列表,逐位比较。我想从for循环开始,但我不确定如何实现它。

您可以使用带有参数
键的内置函数
max

l1 = [1,2,3,4,5,6]
l2 = [6,5,4,3,2,1]

max([l1, l2], key=lambda x: (len(x), x))
或者您可以使用(由@Ch3steR建议):


你是说你基本上需要比较看123456是否大于654321

您可以创建一个接受两个输入列表的函数,如下所示:

def compare(list1, list2):
    first_number = int(''.join(str(x) for x in list1))
    second_number = int(''.join(str(x) for x in list2))
    if first_number > second_number:
        return first_number
    else:
        return second_number
这实际上是将每个列表转换为字符串,并将列表强制转换为int,然后返回较大的int


希望有帮助

对不起,我需要知道像123456和654321这样的两个数字之间哪个数字更大,但是这些数字已经被放入列表
max(l1,l2,key=lambda x:(len(x),x))
,因为
max
签名是
max(*args,key)
。没问题+1没问题!如果我能帮忙,如果你能把答案记为正确的话,我将不胜感激
def compare(list1, list2):
    first_number = int(''.join(str(x) for x in list1))
    second_number = int(''.join(str(x) for x in list2))
    if first_number > second_number:
        return first_number
    else:
        return second_number