我正在寻找一种方法来对字典列表进行排序以获得“自然排序顺序”。我找到了模块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']))


这应该返回字典列表,其中元素根据键'a'的值排序。

关于python - 使用natsort对字典列表进行排序以获得自然排序顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33278514/

10-11 17:50