如何根据较小列表内元素的乘法对列表列表进行排序
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]]
如何根据列表中元素的乘积对列表列表进行排序?
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]]