在 Python 中对 2D 列表进行排序

时间:2021-08-01 09:16:51

标签: python

在 Python 中使用 .sort(),如何对 2D 列表进行排序,例如:

myVar = [['blueberries','fruit','5.20'],['bean sprouts','vegetable','9.25'],['tulip','flower','8.93']]
#added comma

按项目,例如:

myVar = [['bean sprouts','vegetable','9.25'],['blueberries','fruit','5.20'],['tulip','flower','8.93']]

按价格,例如:

myVar = [['blueberries','fruit','5.20'],['tulip','flower','8.93'],['bean sprouts','vegetable','9.25']]

其中“蓝莓、豆芽和郁金香”是商品,“水果、蔬菜和花卉”是类别,浮动是价格。

4 个答案:

答案 0 :(得分:1)

考虑使用这样的东西:-

myList = [['blueberries', 'fruit', 5.20], [
    'bean sprouts', 'vegetable', 9.25], ['tulip', 'flower', 8.93]]

for i in range(3):
    print(sorted(myList, key=lambda x: x[i]))

答案 1 :(得分:1)

不要忘记在列表的元素之间放置逗号

myVar = [['blueberries','fruit','5.20'],
         ['bean sprouts','vegetable','9.25'],
         ['tulip','flower','8.93']]

现在您可以使用 Andy Knight 在评论中建议的内置 sorted 并指定一个 key 函数用于比较项目。

按价格排序列表并获取排序列表的副本

sorted(myVar, key=lambda x: float(x[2]))

按项目名称排序列表

sorted(myVar, key=lambda x: x[0])

答案 2 :(得分:0)

您可以使用lambda

例如

按项目排序:

list.sort(key = lambda x: x[0])

按价格排序:

list.sort(key = lambda x : x[2])

答案 3 :(得分:0)

您可以使用内置的 sorted 函数:

def Sort(sub_li):
    return(sorted(sub_li, key = lambda x: x[2]))    

sub_li =[['blueberries','fruit','5.20'],['bean sprouts','vegetable','9.25'],['tulip','flower','8.93']]
print(Sort(sub_li))