使用 natsort 对字典列表进行排序以获得自然排序顺序
Sort list of dictionaries with natsort to obtain natural sort order
我正在寻找一种方法来对字典列表进行排序以获得 'natural sort order'。我找到了模块 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']))
这应该是 return 一个字典列表,其中元素根据键 'a'
的值排序。
我正在寻找一种方法来对字典列表进行排序以获得 'natural sort order'。我找到了模块 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']))
这应该是 return 一个字典列表,其中元素根据键 'a'
的值排序。