python - 在 Python 中对字符串列表进行排序

标签 python string sorting

<分区>

Possible Duplicate:
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 参数 cmpkey。通常这个 lambdasort 连续出现,这让我无法更好地理解事情。

如何获取:

list = ['Dog', 'bicycle', 'cow', 'doctor', 'Car', 'Boat', 'apple', 'Airplane']

到:

Airplane
apple
bicycle
Boat
Car
cow
doctor
Dog

应考虑外语字符(如 ä、é、î)。

最佳答案

使用不区分大小写的比较:

>>> sorted(['Dog', 'bicycle', 'cow', 'doctor', 'Car', 'Boat',
        'apple', 'Airplane'], key=str.lower)
['Airplane', 'apple', 'bicycle', 'Boat', 'Car', 'cow', 'doctor', 'Dog']

这实际上是 python wiki about sorting 上建议的方式:

Starting with Python 2.4, both list.sort() and sorted() added a key parameter to specify a function to be called on each list element prior to making comparisons.

For example, here's a case-insensitive string comparison:

>>> sorted("This is a test string from Andrew".split(), key=str.lower)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']

关于python - 在 Python 中对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620088/

相关文章:

Python - 列出目录中文件的 fnmatch 函数保留以前的内容

c# - .Net : Running an embedded interpreter 的 Python

javascript - 如何正确排序整数数组

c# - 按照与给定数组相同的顺序对数组进行排序

c - 为什么这个程序不停止接受输入?

c - C中动态数组的排序算法

python - 我在这个 django 文件上传表单中做错了什么?

python - 安装 Chalice 时出错

javascript - 获取通过在 ColdFusion 8 中执行 .split() 创建的数组的第 n 项

string - Codesys REAL_TO_STRING 中的意外功能