美文网首页
PYTHON 字典排序

PYTHON 字典排序

作者: 陈成_Adam | 来源:发表于2022-03-18 16:45 被阅读0次

直接上程序,

dct = {
    "y0": 1,
    "y11": 1,
    "y1": 1,
    "y2": 1,
}
for k in sorted(dct.keys()):
    print(k)

输出,

y0
y1
y11
y2

期望输出:

y0
y1
y2
y11

怎么才能实现期望的输出?
先看最终程序,

import re

dct = {
    "y0": 1,
    "y1": 1,
    "y11": 1,
    "y2": 1,
}
for k in sorted(dct.keys(), key=lambda x: (re.sub(r"[0-9]", "", x), int(re.sub(r"[a-z]", "", x)))):
    print(k)

上面程序怎么做到的呢?
总的思路是先把字典中的 key 拆成两部分,字母和数字,然后先按照字母排序,如果字母相同再按照数字排序...

相关文章

网友评论

      本文标题:PYTHON 字典排序

      本文链接:https://www.haomeiwen.com/subject/xmtwdrtx.html