V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
decken
V2EX  ›  Python

Python 对中文排序除了对照表还有没有其他好的实现?

  •  
  •   decken ·
    DecKen · 2014-07-20 17:21:59 +08:00 · 6088 次点击
    这是一个创建于 3807 天前的主题,其中的信息可能已经有所发展或是发生改变。
    7 条回复    2021-03-07 15:26:27 +08:00
    hahastudio
        1
    hahastudio  
       2014-07-20 18:00:22 +08:00   ❤️ 1
    我觉得对中文没有好方法= =
    最好的方法就是查表= =

    编码里面是个坑,GB2312里
    16-55区为一级汉字,按拼音排序。
    56-87区为二级汉字,按部首/笔画排序。
    utf-8里面没有对中文字符的有意义的顺序

    语言方面,如果是拼音顺序
    那么多音字也是个坑,这你不查表真没辙

    总之,别纠结,查表= =
    qian
        2
    qian  
       2014-07-20 19:37:26 +08:00   ❤️ 1
    是说这个吗... 仅日常使用... 程序员的需求我不懂

    https://gist.github.com/lsfalimis/690e6ddb4f04ecdbf685



    https://github.com/fxsjy/jieba
    sudo pip install jieba

    https://github.com/mozillazg/python-pinyin
    sudo pip install pypinyin
    imn1
        3
    imn1  
       2014-07-20 19:40:46 +08:00   ❤️ 1
    utf-8基本是按偏旁排序的,后加的生僻字例外
    拼音只能查表,现成的unicode-pinyin表开源站上有
    Quaintjade
        4
    Quaintjade  
       2014-07-20 20:14:17 +08:00 via Android   ❤️ 1
    utf-8按偏旁排列,不过中日汉字放一起的,GBK映射过去不连续
    xiaket
        5
    xiaket  
       2014-07-21 08:57:13 +08:00   ❤️ 2
    一般应用而言, 只是要比较两个字的拼音谁先谁后, 而不用解出具体拼音是什么的话, 直接转到GB18030后用大于小于比较就行了.

    >>> s1 = "佛祖"
    >>> s2 = "上帝"
    >>> s1 > s2
    True
    >>> s1.decode("UTF8").encode("GB18030") > s2.decode("UTF8").encode("GB18030")
    xiaket
        6
    xiaket  
       2014-07-21 08:57:45 +08:00
    上一条漏贴了一个结尾的False, sorry.
    bmxbmx3
        7
    bmxbmx3  
       2021-03-07 15:26:27 +08:00
    pypi 有个 cn_sort 库应该能帮到你(小声 bb,我写的,求个 star )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2651 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:10 · PVG 18:10 · LAX 02:10 · JFK 05:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.