Python - 排序列表

时间:2017-05-21 18:01:40

标签: python list dictionary

如果我得到这行代码:

my_list = [3,4,7,2,1,6,8,2,1,4]

我可以用以下内容对此列表进行排序:

my_list.sort()

但如果我想创建一个产品清单,例如:2个奶,3个饼干等等,如果我要对这个清单进行排序[3,2]我将无法知道我应该购买多少牛奶或饼干。我的问题是如何使用字典或列表,以便我能够对列表/字典进行排序,并在排序后知道产品名称。

2 个答案:

答案 0 :(得分:3)

将值放在元组中,它们将保持在一起。

>>> L = [(3, 'cookies'), (2, 'milk')]
>>> L
[(3, 'cookies'), (2, 'milk')]
>>> L.sort()
>>> L
[(2, 'milk'), (3, 'cookies')]

当比较元组时,必须首先考虑数字,首先比较第一个元素,然后比较第二个元素,等等。这称为词典顺序。

答案 1 :(得分:3)

这取决于您如何表示您的产品列表。但是,我们将其表示为tupes列表:

product_list = [(2,'milk'),(3,'cookie')]

现在,您可以使用key进行排序,并在reverse上设置True,以降序顺序排序:

product_list.sort(reverse=True, key=lambda x: x[0])

所以现在我们对每个元组的 first 项进行排序,我们按降序排序。这将导致:

>>> product_list
[(3, 'cookie'), (2, 'milk')]