【发布时间】:2012-07-22 03:14:17
【问题描述】:
可能重复:
How do I sort a list of strings in Python?
How do I sort unicode strings alphabetically in Python?
我有一个字符串列表list,想按字母顺序对其进行排序。当我调用list.sort() 时,列表的第一部分包含按字母顺序排序的以大写字母开头的条目,第二部分包含以小写字母开头的排序条目。像这样:
Airplane
Boat
Car
Dog
apple
bicycle
cow
doctor
我搜索了一个答案,但没有找到一个可行的算法。我读到了locale 模块和sort 参数cmp 和key。这个lambda 经常和sort 连续出现,这让我很难理解。
我如何获得:
list = ['Dog', 'bicycle', 'cow', 'doctor', 'Car', 'Boat', 'apple', 'Airplane']
到:
Airplane
apple
bicycle
Boat
Car
cow
doctor
Dog
应考虑外语字符(如ä、é、î)。
【问题讨论】:
-
你确定你想要的输出吗?
Dog似乎在该列表中的位置非常错误。 -
@ecatmur 这不是那个问题的重复,这个问题更多的是不区分大小写而不是 unicode
-
@ThiefMaster:谢谢,我更正了。
-
我认为它 is 是 stackoverflow.com/questions/36139/… 的骗子,因为该问题的公认答案解释了使用相同的语言环境感知和非语言环境感知的不区分大小写的比较技术如我的回答。
-
@ThiefMaster:你是对的。那里接受的答案解决了我的情况。对于 Windows 上的
setlocale,您只需指定类似b'English_United States'或b'German_Germany'的内容。