2015-03-09 5 views
0

Так что, по существу, я делаю класс верфи, у которого есть атрибут «_containers», который представляет собой отдельный список контейнерных объектов. Каждый контейнер имеет атрибут «_destination», который находится там, где он идет.Сортировка строк в алфавитном порядке Python

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

Как сравнить две строки и выяснить, какой из них сначала основан на алфавитном порядке? Мне вообще запрещено использовать какие-либо списки python.

ответ

3

Когда x и y являются переменными именования объектов Python, которые являются строками,

< х у

является True тогда и только тогда, когда x в алфавитном порядке, прежде чем y.

Это может быть или не соответствовать тому, что означает «в алфавитном порядке до». Например, все символы верхнего регистра поступают в алфавитном порядке до нижнего регистра, поэтому, если x='Zebra' и y='aardvark', x < y будет True. Для того, чтобы конкретно игнорировать верхние/нижние различия случае использовать

x.lower() < y.lower() 

В более общем плане, Unicode, может представить несколько таких ловушек, в результате чего кодовые точки, которые находятся в определенном порядке делать не означает, что они должны быть сопоставлены в таком порядке. Для полностью общего подхода к алгоритму сортировки Unicode вы можете посмотреть различные альтернативы, обсуждаемые в How do I sort unicode strings alphabetically in Python?.

0
containers = sorted(containers, key = lambda i: i.desitination) 
Смежные вопросы