Сортировать смешанные элементы в Python - KeyError - PullRequest
0 голосов
/ 08 марта 2020

Скажем, у меня есть общий список:

data = [
    {'a': 1, 'b': 4, 'c': 3},
    {'a': 2, 'b': 3, 'c': 5},
    {'a': 4, 'b': 6, 'c': 2},
]

Как бы отсортировать его по второму элементу b? Так что отсортированный список будет выглядеть так:

data = [
    {'a': 2, 'b': 3, 'c': 5},
    {'a': 1, 'b': 4, 'c': 3},
    {'a': 4, 'b': 6, 'c': 2},
]

Я пробовал sorted(data, key=itemgetter(1)) и sorted(data, key=lambda test: test[1]), однако я получаю KeyError: 1.

Поскольку мой список включает в себя букву и цифру, я не уверен, как поступить, чтобы решить эту проблему. Я не хочу преобразовывать это в строку, так как мне нужно будет получить доступ к номерам позже. Заранее спасибо.

1 Ответ

1 голос
/ 08 марта 2020
def func(dic):
    return dic["b"]

print (sorted(data,key=func))

Возвращает ожидаемый результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...