根据德国标准对术语进行排序。

dinsort的Python项目详细描述


根据德国DIN5007对术语进行排序。

Build Statussourcesissues

小python库支持根据din对术语进行排序 (德国标准协会)标准5007。

本标准描述了如何按字母顺序对德语术语进行排序。它 提供两种变体:

  • 变型1:

    • ^{tt1}$ equals ^{tt2}$
    • ^{tt3}$ equals ^{tt4}$
  • 变型2:

    • ^{tt1}$ equals ^{tt6}$
    • ^{tt3}$ equals ^{tt4}$

在这两个变体中,其他变音符号都被删除。所以'é''ç' 分别变成'e''c'

用法

dinsort是一个Python库。

规范化术语

主要功能是dinsort.normalize。它生成一个规范化的表单 任何给定的字符串项:

>>> from dinsort import normalize
>>> normalize("Löblich")
'loblich'

变量定义为常量:

>>> from dinsort import VARIANT1, VARIANT2
>>> normalize("Müßig", variant=VARIANT1)
'mussig'

>>> normalize("Müßig", variant=VARIANT2)
'muessig'

默认情况下,术语规范化为小写。你可以要求 区分大小写:

>>> normalize("Maße", case_sensitive=True)
'Masse'

排序

规范化术语可以很容易地用于对术语列表进行排序:

>>> sorted(["fas", "fair", "fär"], key=lambda x: normalize(x))
['fair', 'fär', 'fas']

我们提供了一个避免(有时不容易阅读)的快捷方式lambda 代码中包含normalize的语句为此使用sort_func

>>> from dinsort import sort_func
>>> sorted(["fas", "fair", "fär"], key=sort_func())
['fair', 'fär', 'fas']

sort_func接受normalize的关键字:

>>> sorted(["Muße", "muß"], key=sort_func())
['muß', 'Muße']

>>> sorted(["Muße", "muß"], key=sort_func(case_sensitive=True))
['Muße', 'muß']

>>> sorted(["far", "fähre"], key=sort_func())
['fähre', 'far']

>>> sorted(["far", "färe", "fast"], key=sort_func())
['far', 'färe', 'fast']

>>> sorted(["far", "färe", "fast"], key=sort_func(variant=VARIANT2))
['färe', 'far', 'fast']

安装

用户安装

最新版本的dinsort可以通过pip

$ pip install dinsort

具体方式取决于您的操作系统。

开发者安装

开发人员从github克隆源代码:

$ git clone https://github.com/ulif/dinsort.git

创建虚拟环境(支持Python版本>;=2.6):

$ cd dinsort
$ virtualenv py27
$ source py27/bin/activate

和安装依赖项:

(py27) python setup py dev

您可以使用py.test

运行测试
(py27) py.test

或使用tox

(py27) pip install tox
(py27) tox

变化

0.2(2015-10-14)

  • 添加sort_func它作为lambda表达式的快捷方式 normalize
  • 正式支持Pypy。

0.1(2015-10-13)

  • 初始版本

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

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本