python字符串排序_Python-如何对字符串列表进行排序?
小編典典
基本答案:
mylist = ["b", "C", "A"]
mylist.sort()
這會修改你的原始列表(即就地排序)。要獲得列表的排序副本,而無需更改原始副本,請使用以下sorted()函數:
for x in sorted(mylist):
print x
但是,上面的示例有些天真,因為它們沒有考慮區域設置,而是執行區分大小寫的排序。你可以利用可選參數key指定自定義排序順序(使用cmp,則是不推薦使用的解決方案,因為它必須多次評估- key每個元素僅計算一次)。
因此,要根據當前語言環境進行排序,并考慮到特定于語言的規則(這cmp_to_key是functools的幫助函數):
sorted(mylist, key=cmp_to_key(locale.strcoll))
最后,如果需要,你可以指定自定義語言環境進行排序:
import locale
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') # vary depending on your lang/locale
assert sorted((u'Ab', u'ad', u'aa'),
key=cmp_to_key(locale.strcoll)) == [u'aa', u'Ab', u'ad']
最后要注意的是:你將看到使用該lower()方法的不區分大小寫的排序示例-這些是不正確的,因為它們僅適用于ASCII字符集。對于任何非英語數據,這兩個錯誤:
# this is incorrect!
mylist.sort(key=lambda x: x.lower())
# alternative notation, a bit faster, but still wrong
mylist.sort(key=str.lower)
2020-02-20
總結
以上是生活随笔為你收集整理的python字符串排序_Python-如何对字符串列表进行排序?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票出现顶背离会有什么结果?
- 下一篇: 买银行股票持有多长时间可以分红?