Python中的二维列表排序

2024-06-26 13:18:36 发布

您现在位置: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']]

其中“蓝莓、豆芽和郁金香”是项目,“水果、蔬菜和花卉”是类别,花车是价格


Tags: 项目列表added排序价格sortflowerfruit
3条回答

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

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])

您可以使用lambda

比如说,

按项目排序:

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

按价格排序:

list.sort(key = lambda x : x[2])
请考虑使用这样的东西:-

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]))

相关问题 更多 >