我有一份清单,即
ls= [u'Cancer',u"Men's",u'Orthopedics',u'Pediatric',u"Senior's",u"Women's"]
由于列表元素中存在单引号,ls.sort()似乎不起作用。
我需要对此列表进行排序。任何想法???
答案 0 :(得分:5)
实际上,问题 有效,而一般情况的答案并不完全正确。
如果测试材料不是已经排序,它将无法正确按字母顺序排列,但'
会导致列表按错误的顺序排序:
>>> 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"]
答案 1 :(得分:3)
>>> 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
'
没问题 - 但请注意它在 a-z 和 A-Z 字符之前排序:
>>> ls
[u'abc', u'abz', u"ab'"]
>>> ls.sort()
>>> ls
[u"ab'", u'abc', u'abz']
>>>