Rumah  >  Soal Jawab  >  teks badan

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

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

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


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

巴扎黑巴扎黑2719 hari yang lalu1189

membalas semua(3)saya akan balas

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

    balas
    0
  • 怪我咯

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

    Peta aksara dan nombor Cina dan kemudian bandingkan
    dic={'一':1,'二':2,'三':3,'四':4}

    balas
    0
  • PHP中文网

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

    Aksara Cina biasanya diisih mengikut pinyin dan pukulan.
    Anda perlu mencipta jadual pemetaan aksara Cina dan pinyin atau bilangan sebatan, dan kemudian membandingkannya melalui pinyin atau sebatan yang sepadan.

    Jika keperluan penyoal di sini hanyalah untuk membandingkan "satu, dua, tiga, empat, lima, enam, tujuh, lapan, sembilan, sepuluh".
    Anda boleh membuat jadual perbandingan seperti berikut:

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

    Maka adalah sangat mudah untuk menggunakan nilai perbandingan untuk mengisih.

    balas
    0
  • Batalbalas