按 Python 中的任何元素对嵌套列表进行排序

时间:2021-07-24 22:50:08

标签: python list sorting

有没有一种简单的方法可以按内部列表的任何元素对嵌套列表进行排序?我们可以使用 list_name.sort() 语句对列表进行排序,但我们可以按任何所需的元素甚至任何所需的列表元素元素进行排序吗?

books = [
    ['123', 'book1', 25],
    ['243', 'book2', 30],
    ['874', 'book3', 15],
    ['519', 'book4', 20],
    ['745', 'book5', 10]
]
  1. 内部列表的索引代表价格,我想按价格对这个列表进行排序。如何在不使用任何花哨循环的情况下完成此操作?

2 个答案:

答案 0 :(得分:3)

这应该可以解决问题,例如,如果您希望按每个内部列表的第 3 个元素进行排序-

# element to sort by:
elm = 2
books.sort(key=lambda x: x[elm])
books

答案 1 :(得分:1)

books = [
['123', 'book1', 25],
['243', 'book2', 30],
['874', 'book3', 15],
['519', 'book4', 20],
['745', 'book5', 10]
]

# Use sort() method if you don't need to create a new object
books.sort(key=lambda x : x[2])
print(books)

# Use sorted() function if you want a new object
sorted_books = sorted(books, key=lambda x: x[2])
print(sorted_books)
相关问题