recherche

Maison  >  Questions et réponses  >  le corps du texte

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

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

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


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

巴扎黑巴扎黑2769 Il y a quelques jours1230

répondre à tous(3)je répondrai

  • 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])
    ['〇', '一', '二', '二', '三', '四', '五', '六', '七', '八', '九', '十']

    répondre
    0
  • 怪我咯

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

    Mappez les caractères et les chiffres chinois, puis comparez
    dic={'一':1,'二':2,'三':3,'四':4}

    répondre
    0
  • PHP中文网

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

    Les caractères chinois sont généralement triés par pinyin et par traits.
    Vous devez créer un tableau de cartographie des caractères chinois et des numéros de pinyin ou de traits, puis les comparer à travers le pinyin ou les traits correspondants.

    Si l’exigence de la personne qui pose la question ici est simplement de comparer « un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix ».
    Vous pouvez créer un tableau comparatif comme suit :

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

    Ensuite, il est très simple d'utiliser la valeur de comparaison pour trier.

    répondre
    0
  • Annulerrépondre