在 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']]
其中“蓝莓、豆芽和郁金香”是商品,“水果、蔬菜和花卉”是类别,浮动是价格。
答案 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))