python字符串排序_Python-如何对字符串列表进行排序?
小編典典
基本答案:
mylist = ["b", "C", "A"]
mylist.sort()
這會(huì)修改你的原始列表(即就地排序)。要獲得列表的排序副本,而無需更改原始副本,請(qǐng)使用以下sorted()函數(shù):
for x in sorted(mylist):
print x
但是,上面的示例有些天真,因?yàn)樗鼈儧]有考慮區(qū)域設(shè)置,而是執(zhí)行區(qū)分大小寫的排序。你可以利用可選參數(shù)key指定自定義排序順序(使用cmp,則是不推薦使用的解決方案,因?yàn)樗仨毝啻卧u(píng)估- key每個(gè)元素僅計(jì)算一次)。
因此,要根據(jù)當(dāng)前語言環(huán)境進(jìn)行排序,并考慮到特定于語言的規(guī)則(這cmp_to_key是functools的幫助函數(shù)):
sorted(mylist, key=cmp_to_key(locale.strcoll))
最后,如果需要,你可以指定自定義語言環(huán)境進(jìn)行排序:
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()方法的不區(qū)分大小寫的排序示例-這些是不正確的,因?yàn)樗鼈儍H適用于ASCII字符集。對(duì)于任何非英語數(shù)據(jù),這兩個(gè)錯(cuò)誤:
# 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
總結(jié)
以上是生活随笔為你收集整理的python字符串排序_Python-如何对字符串列表进行排序?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票出现顶背离会有什么结果?
- 下一篇: mfc从文件中读取数据_Python 中