сортировка списка питонов - PullRequest
0 голосов
/ 12 февраля 2012

У меня есть список, т.е.

ls= [u'Cancer',u"Men's",u'Orthopedics',u'Pediatric',u"Senior's",u"Women's"]

ls.sort () здесь не работает из-за наличия одинарных кавычек в элементах списка.

Мне нужно отсортировать этот список. Любая идея ???

Ответы [ 2 ]

5 голосов
/ 12 февраля 2012

На самом деле вопрос является действительным, и ответ не совсем правильный в общем случае .Если тестовый материал не был уже отсортирован, он не был бы в алфавитном порядке, но ' s приведет к тому, что список будет отсортирован в неправильном порядке:

>>> l = ["'''b", "a", "a'ab", "aaa"]
>>> l.sort()
>>> l
["'''b", 'a', "a'ab", 'aaa']
>>> from functools import partial
>>> import string
>>> keyfunc = partial(string.replace, old="'", new="")
>>> l.sort(key=keyfunc)
>>> l
['a', 'aaa', "a'ab", "'''b"]
3 голосов
/ 12 февраля 2012
>>> ls
[u'Cancer', u"Men's", u'Orthopedics', u'Pediatric', u"Senior's", u"Women's"]
>>> ls.sort()
>>> ls
[u'Cancer', u"Men's", u'Orthopedics', u'Pediatric', u"Senior's", u"Women's"]

Поскольку список был отсортирован в первую очередь, он не изменился.sort не имеет проблем с ' - но обратите внимание, что он сортируется до символов az и AZ :

>>> ls
[u'abc', u'abz', u"ab'"]
>>> ls.sort()
>>> ls
[u"ab'", u'abc', u'abz']
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...