久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python無法正確排序unicode。Strcoll沒有幫助

瀏覽:54日期:2022-08-07 10:45:34
如何解決Python無法正確排序unicode。Strcoll沒有幫助?

顯然,在所有平臺(tái)上進(jìn)行排序的唯一方法是使用具有PyICU綁定的ICU庫(kù)(在PyPI上為PyICU)。

在OS X:上sudo port installpy26-pyicu,請(qǐng)注意此處描述的錯(cuò)誤:https ://svn.macports.org/ticket/23429(使用Macports的樂趣)。

不幸的是,嚴(yán)重缺乏PyICU的文檔,但是我設(shè)法找出了它的完成方法:

import PyICUcollator = PyICU.Collator.createInstance(PyICU.Locale(’pl_PL.UTF-8’))print [i for i in sorted([u’a’, u’z’, u’?’], cmp=collator.compare)]

這使:

[u’a’, u’?’, u’z’]

另一個(gè)優(yōu)點(diǎn)-@bobince:它是線程安全的,因此在設(shè)置請(qǐng)求方式的語(yǔ)言環(huán)境時(shí)并非沒有用。

解決方法

我在OSX和Linux上的Python 2.5.1和2.6.5中使用Unicode排序規(guī)則對(duì)列表進(jìn)行排序時(shí)遇到問題。

import locale locale.setlocale(locale.LC_ALL,’pl_PL.UTF-8’)print [i for i in sorted([u’a’,u’z’,u’?’],cmp=locale.strcoll)]

應(yīng)該打印:

[u’a’,u’?’,u’z’]

而是打印出來:

[u’a’,u’?’]

總結(jié)一下-好像strcoll壞了。嘗試了各種類型的變量(例如非Unicode編碼的字符串)。

我做錯(cuò)了什么?

最好的問候,Tomasz Kopczuk。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 林芝县| 安远县| 剑川县| 休宁县| 阳谷县| 临沭县| 灵璧县| 常熟市| 石家庄市| 玉溪市| 辽宁省| 綦江县| 临猗县| 内江市| 台北县| 九龙坡区| 昌乐县| 两当县| 漠河县| 尖扎县| 凌源市| 海门市| 昌乐县| 云梦县| 洱源县| 宜宾县| 华容县| 阳江市| 鲁甸县| 县级市| 抚远县| 梅河口市| 垣曲县| 博野县| 布拖县| 柳州市| 左云县| 陆河县| 吉林省| 沙雅县| 郓城县|