Поведение ключевого необязательного параметра при использовании sorted () - PullRequest
0 голосов
/ 04 февраля 2019
s="String"
print(sorted(s,key=lambda x:x.upper()))

Выход ['g', 'i', 'n', 'r', 'S', 't'].Однако я не понимаю, что происходит.Я хотел бы отсортировать итерируемые s так, чтобы приоритет отдавался строчным буквам, а в конце - заглавным буквам.Так что на выходе получается ['g', 'i', 'n', 'r', 't', 'S'].

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

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

from string import ascii_letters
print(sorted('String', key=lambda x: ascii_letters.index(x)))
#prints ['g', 'i', 'n', 'r', 't', 'S']
0 голосов
/ 04 февраля 2019

Вы можете заставить функцию ключа возвращать кортеж элементов, на которых вы хотите, чтобы вместо этого был основан порядок:

sorted(s, key=lambda x: (x.isupper(), x))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...