suchen

Heim  >  Fragen und Antworten  >  Hauptteil

想问一下用python如何对中文的 一二三四进行排序?

今天偶然做一个问题的时候想要对一组数据的进行排序,然后里面有中文的 一二三四,排序出来的结果不是我想要的结果。然后我就比较了七和二的大小,发现七居然比二小

下面这张图是一到七排序后的结果


我知道导致这个结果的原因是因为编码的不同。但是如果我想知道如何对中文的数字进行排序呐?

巴扎黑巴扎黑2803 Tage vor1243

Antworte allen(3)Ich werde antworten

  • PHPz

    PHPz2017-04-18 10:07:12

    python3

    >>> import enum
    >>> class CN(enum.IntEnum):
        〇,一,二,三,四,五,六,七,八,九,十 = range(11)
    
        
    >>> CN.七 > CN.一
    True
    
    >>> for i in CN:
        print(i, i.value)
    
        
    CN.〇 0
    CN.一 1
    CN.二 2
    CN.三 3
    CN.四 4
    CN.五 5
    CN.六 6
    CN.七 7
    CN.八 8
    CN.九 9
    CN.十 10
    
    >>> 玖 = '九'
    >>> CN[玖].value
    9
    >>> 

    >>> n = ['一', '三', '十', '二', '五', '九', '〇', '六', '四', '七', '八', '二']
    >>> sorted(n,key=lambda x:CN[x])
    ['〇', '一', '二', '二', '三', '四', '五', '六', '七', '八', '九', '十']

    Antwort
    0
  • 怪我咯

    怪我咯2017-04-18 10:07:12

    将中文和数字做个映射然后比较
    dic={'一':1,'二':2,'三':3,'四':4}

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-18 10:07:12

    中文一般按照拼音和笔画排序。
    需要建立一张中文和拼音或笔画数的mapping表,然后通过对应的拼音或者笔画来作比较。

    如果题主这里的需求只是比较“一,二,三,四,五,六,七,八,九,十”的话。
    可以建立一张如下的对照表:

    一 -> 1
    二 -> 2
    三 -> 3
    四 -> 4
    ……
    十 -> 10

    然后利用对照值来作排序就很简单了。

    Antwort
    0
  • StornierenAntwort