我是Python的新手,需要部分项目的帮助。我正在尝试比较两个数字列表中哪个列表更大,例如[1,2,3,4,5,6]
和[6,5,4,3,2,1]
。当列表的长度相同时,我需要从左到右逐位比较扫描列表。我以为从for循环开始,但不确定如何实现。
答案 0 :(得分:2)
您可以将内置函数max
与参数key
一起使用:
l1 = [1,2,3,4,5,6]
l2 = [6,5,4,3,2,1]
max([l1, l2], key=lambda x: (len(x), x))
或者您可以使用(由@ Ch3steR建议):
max(l1,l2,key=lambda x:(len(x),x))
答案 1 :(得分:0)
所以您是说您基本上需要比较一下,看看123,456是否大于654,321?
您可以创建一个接受两个输入列表的函数,如下所示:
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。
希望有帮助!