如何根据较小列表内元素的乘法对列表列表进行排序

How to sort a list of lists based on multiplication of elements inside of smaller list

如何根据列表中元素的乘积对列表列表进行排序?

list1 = [[11,11], [15,12], [13,18], [14,21]...[a,b]]

如何从 a*b 的最小值到最高值对列表进行排序? 假设我们有 list2 = [[1,1], [5,5], [2,2]], 我希望它根据大列表中的 [a,b] 进行排序,因此结果将是:

list3 = [[1,1], [2,2], [5,5]]

我试过 list1.sort[key = a * b] 之类的方法,但它不起作用,我真的不知道如何解决这个问题

尝试:

list1 = [[11, 11], [15, 12], [13, 18], [14, 21]]

out = sorted(list1, key=lambda k: k[0] * k[1])
print(out)

打印:

[[11, 11], [15, 12], [13, 18], [14, 21]]

我未对您的输入列表进行排序,因此您可以看到结果不同:

inputs = [[15,12], [13,18], [14,21],[11,11]]

results = sorted(inputs,key=lambda x:x[0]*x[1])

print( f"{results=}" )

结果:

results=[[11, 11], [15, 12], [13, 18], [14, 21]]

这是你想要的吗,按照嵌套列表元素的乘积排序

def  Sort(sub_li): 
    sub_li.sort(key = lambda x: x[1]*x[0]) 
    return sub_li

sub_li= [[11,11], [15,12], [13,18], [14,21]]
print(Sort(sub_li)) 

输出

[[11, 11], [15, 12], [13, 18], [14, 21]]