先贴示例代码,方便着急用的朋友:
from pypinyin import lazy_pinyin as pyraw = [ "赌场", "大班", "abc", "军史", "大阪", "赌博", "bbc", "经营", "独播", "精英", "军事" ]ordered = sorted(raw, key=lambda e: ''.join(py(e)))for z in zip(raw, ordered):print(z)
输出:
('赌场', 'abc')('大班', 'bbc')('abc', '大班')('军史', '大阪')('大阪', '赌博')('赌博', '独播')('bbc', '赌场')('经营', '经营')('独播', '精英')('精英', '军史')('军事', '军事')
再说说关键的地方,方便想改动自用的朋友 。示例代码中最关键部分如下:
sorted(raw, key=lambda e: ''.join(py(e)))
首先sorted函数的key指定了排序时的取值,也就是说sorted算法对raw列表元素做比较时实际使用的是key对应函数的结果,这样在排序raw时实际是比较的其元素的pinyin输出 。
再说key,其对应一个函数,可以是lambda,也可以是其他函数,如果排序的是对象,也可以在此调用对象的函数,这样就可以对对象列表进行自定义的偏序排序了 。
最后是py的输出,此函数返回输入字符串的拼音列表,例如:
>>> py('abc')['abc']>>> py('赌场')['du', 'chang']
【羡慕BI软件的可视化?Python终于可以做出联动可视化报告】所以可以把拼音列表连接起来使用 。
推荐阅读
- 接口的屏蔽和限流很难么?Redis全搞定
- Nginx反向代理Grafana服务的配置步骤
- 12 个优化 Docker 镜像安全性的技巧
- 免费开源的视频直播/录制 OBS Studio 上架 Steam
- 24 张图搞定 ICMP:最常用的网络命令 ping 和 tracert
- 泡沫红茶用什么茶,泡沫红茶饮料
- 泡红茶需要多少度的水,绿茶多少度的水
- 红茶功夫茶的泡法,红茶包的泡法
- 红茶滇红作用,红茶的泡多长时间
- 红茶般用什么器具泡,红茶的专业知识