TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.3K subscribers
Post #7531 2.88K
🐍 Лексикографический порядок в Python

Почему в Python "apple" > "animal" возвращает True, а "Apple" < "apple" — тоже True? Всё дело в лексикографическом порядке.

Python не просто знает алфавит, он смотрит на Unicode-код каждого символа.

✅ Сравнение идет посимвольно: первая пара, вторая и т.д.
✅ Как только найдено различие — результат готов.
✅ Если одна строка — префикс другой (напр. "cat" и `"catastrophe"`), то та, что короче, считается «меньшей».

Любая последовательность в Python (списки, кортежи, байтовые строки) сравнивается точно так же — индекс за индексом.

Пример с кортежами:


x = (45, 1, 13)
y = (45, 7, 4)
print(x < y) # True, потому что на индексе [1] единица меньше семерки.



Это свойство Python безумно полезно, когда нужно отсортировать данные по нескольким критериям сразу. Просто упакуйте их в кортежи.

Пример: Сортируем студентов по году выпуска, а затем по фамилии:

students = [
(1978, "Little"),
(1978, "Gonzalez"),
(1977, "Anders"),
]


Python сначала сравнит годы, а при равенстве — фамилии sorted_students = sorted(students)
Результат: Anders (1977), затем Gonzalez (1978), затем Little (1978)

Главные выводы:
1. Заглавные буквы в Unicode идут раньше строчных. Чтобы сортировка была честной, используйте .lower().
2. Вы не можете сравнить список и кортеж или строку и число — Python выдаст TypeError.
3. Если нужно отсортировать объекты по приоритету, создайте список кортежей (приоритет, объект).

📍 Навигация: Вакансии • Задачи • Собесы

🐸 Библиотека питониста

#буст
  • 👍 8
  • ❤ 3
More from @pyproglib
  1. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  2. Sep 25, 2026🔥 Курс «ИИ для разработчиков» уже стартовал И мы решили открыть первое занятие всем — мож…
  3. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  4. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  5. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  6. Sep 15, 2026⏱️ Справочник по Big-O в Python Для тех, кто хочет писать не просто работающий, а эффектив…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →