Как отсортировать по последней букве значения словаря python? - PullRequest
0 голосов
/ 28 мая 2020

из следующего списка словарей, как мне отсортировать по последней букве имени ?

    list_of_dicts = [
    {'name': 'Jadis', 'year_of_birth': 0, 'gender': 'Female'},
    {'name': 'Peter', 'year_of_birth': 1927, 'gender': 'Male'},
    {'name': 'Susan', 'year_of_birth': 1928, 'gender': 'Female'},
    {'name': 'Edmund', 'year_of_birth': 1930, 'gender': 'Male'},
    {'name': 'Lucy', 'year_of_birth': 1932, 'gender': 'Female'}]

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

В случае, если вы хотите отсортировать тот же список (на месте), вы можете использовать метод «.sort» в списке.

list_of_dicts.sort(key= lambda x: x.get('name')[-1]) # key accepts a function, and we are fetching the last letter of the name. 
print (list_of_dicts)

I надеюсь, что это поможет и имеет значение.

0 голосов
/ 28 мая 2020

Вы можете сделать это с помощью встроенной функции sorted(yourlist=, key=).

Где your_list - это ваш list_of_dicts, а с key= вы определяете logi c, как вы хотите, чтобы ваш список ввода быть отсортированным. В вашем случае код:

sorted_list=sorted(list_of_dicts, key=lambda x: x['name'][-1])

Лямбда-функция позволяет вам сортировать последний символ x['name'] для каждого x в исходном списке. Он возвращается, когда print (sorted_list):

[{'name': 'Edmund', 'year_of_birth': 1930, 'gender': 'Male'}, {'name': 
'Susan', 'year_of_birth': 1928, 'gender': 'Female'}, {'name': 'Peter', 
'year_of_birth': 1927, 'gender': 'Male'}, {'name': 'Jadis', 'year_of_birth': 
0, 'gender': 'Female'}, {'name': 'Lucy', 'year_of_birth': 1932, 'gender': 
'Female'}]

Как видите, отсортированный список следует за «Эдмунд» -> «Сьюзен» -> «Питер» -> «Джадис» -> «Люси»

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