python访问icu文本排序规则

zope.ucol的Python项目详细描述


这个包为International Component for Unicode (ICU)提供了一个python接口。

Change History

1.0.2 (2006-10-16)

修复了安装文件问题。

1.0.1 (2006-10-16)

已将缺少的导入添加到setup.py。

1.0 (2006-10-16)

初始版本。

Installation

zope.ucol以通常的方式通过setup.py安装。

你必须安装ICU。如果ICU没有像往常一样安装 在系统中包含文件和库的位置,可以提供 生成扩展时setup.py的命令行选项,如:

python2.4 setup.py build_ext \
  -I/home/jim/p/z4i/jim-icu/var/opt/icu/include \
  -L/home/jim/p/z4i/jim-icu/var/opt/icu/lib \
  -R/home/jim/p/z4i/jim-icu/var/opt/icu/lib

python2.4 setup.py install

注意,如果库位于一个不寻常的地方,您将希望 使用-r选项指定它们的位置,这样就不必 在运行时指定它。

Detailed Documentation

使用icu基于区域设置的文本排序

ucol包在 Unicode(ICU)库的国际组件的uColC API。 它提供基于区域设置的文本排序规则。

要执行排序,您需要为 你的地点。在本例中,我们将使用特殊的“根”区域设置:

>>> import zope.ucol
>>> collator = zope.ucol.Collator("root")

collator有一个用于从unicode创建排序规则键的键方法。 串。方法可以作为list.sort的键参数传递。 或者内置的排序函数。

>>> sorted([u'Sam', u'sally', u'Abe', u'alice', u'Terry', u'tim',
...        u'\U00023119', u'\u62d5'], key=collator.key)
[u'Abe', u'alice', u'sally', u'Sam', u'Terry', u'tim',
 u'\u62d5', u'\U00023119']

有一个用于比较两个unicode字符串的cmp方法,也可以是 排序时使用:

>>> sorted([u'Sam', u'sally', u'Abe', u'alice', u'Terry', u'tim',
...        u'\U00023119', u'\u62d5'], collator.cmp)
[u'Abe', u'alice', u'sally', u'Sam', u'Terry', u'tim',
 u'\u62d5', u'\U00023119']

注意,将键方法传递给 排序函数,而不是cmp方法。CMP方法 在字符串长且很少的特殊情况下以及 他们一开始就有分歧。这是因为计算 当 顺序可以通过分析 原始字符串。

Collator attributes

您可以向collator询问其语言环境:

>>> collator.locale
'root'

您可以查看是否使用了默认排序规则信息:

>>> collator.used_default_information
0
>>> collator = zope.ucol.Collator("eek")
>>> collator.used_default_information
1

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java静态对象初始化   java请求的资源上不存在“Accesscontrolalloworigin”头。起源http://localhost:4200因此不允许访问   java i无法通过executor的submit方法处理列表的所有记录   javadoc中的java文档逻辑   java如何使RCPPlugin独立   java使用cobertura插件跳过*测试*   验证Java处理多个可能未知的日期/时间格式   java将JPanel添加到JFrame   BB 7.0中的黑莓Java标签   java动态地向注释处理环境添加类型   java如何将头信息作为键值对传递给使用jersey的rest服务   java使用ImageJ调整图像大小并裁剪图像   为什么Java8的ToIntFunction<t>不扩展函数<t,Integer>   java无法向Jackson ObjectMapper类注册模块   解析如何将此jsonarray解析为字符串或数组java   如何从Java调用具有数值参数的Scala方法   类如何从ColdFusion实现Java接口?   java如何让线程只添加到一个带有同步