Я ищу способ сортировки списка dicts для получения «естественного порядка сортировки». Я нашел модуль natsort
, но apparantly я не использую его правильно, чтобы правильно отсортировать список словарей. Может ли кто-нибудь помочь найти мою ошибку?Сортировка списка словарей с 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 (dic, key = itemgetter (* ['a']))'? –
№ Lol, он работает. Это означает, что у меня уже был ответ:/ – Joko
Есть ли причина, по которой вы используете 'key = lambda y: y.lower()' на первом проходе? Похоже, ваши данные уже строчные. – SethMMorton