Python按照拼音顺序给数组排序

# -*- coding: utf-8 -*-
#pip install pypinyin
# @Function: 中文排序
from itertools import chain
from pypinyin import pinyin, Style


def to_pinyin(s):
    '''转拼音
    'ni3hao3ma'
    '''
    return ''.join(chain.from_iterable(pinyin(s, style=Style.TONE3)))


print(sorted(['美国', '中国', '日本']))  # 美m 中z 日r abcdefghijkl[m]nopq[r]stuvwsy[z]
# ['中国', '日本', '美国']
print(sorted(['美国', '中国', '日本'], key=to_pinyin))  # 美m 中z 日r abcdefghijkl[m]nopq[r]stuvwsy[z]
# ['美国', '日本', '中国']

你可能感兴趣的:(python)