gpt4 book ai didi

python - 字典对象列表的数字排序

转载 作者:行者123 更新时间:2023-11-28 23:01:20 25 4
gpt4 key购买 nike

我是 python 编程的新手,还没有购买有关这方面的教科书(我今天从商店或亚马逊购买一本)。同时,你能帮我解决一下我遇到的以下问题吗?

我有一个这样的字典对象列表:

stock = [ 
{ 'date': '2012', 'amount': '1.45', 'type': 'one'},
{ 'date': '2012', 'amount': '1.4', 'type': 'two'},
{ 'date': '2011', 'amount': '1.35', 'type': 'three'},
{ 'date': '2012', 'amount': '1.35', 'type': 'four'}
]

我想按金额日期列对列表进行排序,然后按金额列对列表进行排序,以便排序后的列表如下所示:

stock = [ 
{ 'date': '2011', 'amount': '1.35', 'type': 'three'},
{ 'date': '2012', 'amount': '1.35', 'type': 'four'},
{ 'date': '2012', 'amount': '1.4', 'type': 'two'},
{ 'date': '2012', 'amount': '1.45', 'type': 'one'}
]

我现在认为我需要使用 sorted() 但作为初学者我很难理解我看到的概念。

我试过这个:

from operator import itemgetter
all_amounts = itemgetter("amount")
stock.sort(key = all_amounts)

但这导致列表按字母数字而不是数字排序。

谁能告诉我如何实现这种看似简单的排序?谢谢!

最佳答案

您的排序条件对于 operator.itemgetter 来说太复杂了。您将不得不使用 lambda 函数:

stock.sort(key=lambda x: (int(x['date']), float(x['amount'])))

all_amounts = lambda x: (int(x['date']), float(x['amount']))
stock.sort(key=all_amounts)

关于python - 字典对象列表的数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com