Python 使用natsort对字典列表进行排序,以获得自然排序顺序

Python 使用natsort对字典列表进行排序,以获得自然排序顺序,python,sorting,dictionary,natsort,Python,Sorting,Dictionary,Natsort,我正在寻找一种方法来对dict列表进行排序,以获得“自然排序顺序”。我找到了模块natsort,但显然我没有正确使用它来正确排序字典列表。有人能帮我找出错误吗 这是我的密码: from operator import itemgetter import natsort # Example list an dict list = ['13h', '1h', '3h'] dict = [{'a': '13h', 'b': 3}, {'a': '1h', 'b': 1}, {'a': '3h', '

我正在寻找一种方法来对dict列表进行排序,以获得“自然排序顺序”。我找到了模块
natsort
,但显然我没有正确使用它来正确排序字典列表。有人能帮我找出错误吗

这是我的密码:

from operator import itemgetter
import natsort

# Example list an dict
list = ['13h', '1h', '3h']
dict = [{'a': '13h', 'b': 3}, {'a': '1h', 'b': 1}, {'a': '3h', 'b': 0}]

# Sort the list
natsort.natsorted(list, key=lambda y: y.lower())

# Sort the dict
# Later I also want to sort on several keys, therefore the itemgetter
sorted(dic, key=itemgetter(*['a']))

您可以在代码中替换
natsort.natsorted
而不是
sorted()
,它应该可以工作。范例-

natsort.natsorted(dic, key=itemgetter(*['a']))

这将返回一个字典列表,其中元素根据key
'a'

的值进行排序。您是否尝试过-
natsort.natsorted(dic,key=itemgetter(*['a'])
?否。Lol,它可以工作。这意味着我已经得到了答案:/key=lambda y:y.lower()第一次使用有什么原因吗?看起来你的数据已经是小写的了。我到处找这个,5年过去了:)