想问一下用python如何对中文的 一二三四进行排序?
巴扎黑
巴扎黑 2017-04-18 10:05:12
0
3
1187

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

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


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

巴扎黑
巴扎黑

répondre à tous(3)
PHPzhong

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

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

洪涛

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!