@Lepilov

Как устроена сортировка в Python?

Ребятки, что то не могу найти инфу как устроена сортировка по умолчанию. key, lamda - все это знаю и применяю, но вот почему
a = ['aa', 'd', 'c','a']
a.sort(key = lambda x:len(x))

выдает
['d', 'c', 'a', 'aa']
Как считается длина одного символа?
И второй пример
sorted("This is a test string from Andrew".split(), key=str.lower)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']

Я бы предположил что все слова с маленькой буквы должны идти впереди, но нет.
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
@deliro
Сортировка строк основана на поэлементном сравнении позиций символов в таблице кодировки. Надеюсь, этот пример тебе поможет понять:

In [1]: x = ['a', 'aaa', 'A', 'AA', 'AAA', 'AaA']

In [2]: sorted(x)
Out[2]: ['A', 'AA', 'AAA', 'AaA', 'a', 'aaa']

In [3]: [[ord(i) for i in el] for el in sorted(x)]
Out[3]: [[65], [65, 65], [65, 65, 65], [65, 97, 65], [97], [97, 97, 97]]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AnnTHony
@AnnTHony
Интроверт
Я бы предположил что все слова с маленькой буквы должны идти впереди


sorted("This is a test string from Andrew".split(), key=str.lower)


Зачем тогда сортировать, переводя в нижний регистр?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы