Python中列表排序,字典排序,列表嵌套字典排序,字典嵌套字典排序汇总

1、列表排序

ls = [4, 6, 2, 7, 3, 1, 8]
ls.sort()
ls.sort(reverse=True)

使用sorted(),sorted有返回值,默认升序,参数 reverse=True
ls = [4, 6, 2, 7, 3, 1, 8]
sorted_ls = sorted(ls)

2、字典排序

orig = dict((
    ('c', 1),
    ('b', 2),
    ('a', 3),
    ('special', dict((
        ('c', 3),
        ('b', 2),
        ('a', 1),
    )))
))
print(orig)
sorted_copy = dict(sorted(orig.items(), key=lambda x: x[0]))  # x[0]表示以键排序,x[1]表示以值排序
print("sorted_copy",sorted_copy)

3、列表嵌套字典排序,仍然使用sorted(),默认升序,排序的key使用lambda函数

# sorted第一个参数直接跟列表,lambda选取排序的字典的键

本质上 上面两个都是一样 orig.items()将字典第一层级的键值对全部取出形成列表。

orig = [
    ('c', 1),
    ('b', 2),
    ('a', 3),
    ('special', 4)
]
print(orig)
sorted_copy = dict(sorted(orig, key=lambda x: x[0]))  # x[0]表示以键排序,x[1]表示以值排序
print("sorted_copy",sorted_copy)

4、字典嵌套字典

orig = {
    "c": 1,
    "b": 2,
    "a": 3,
    'd': {
        "c": 3,
        "b": 2,
        "d": 1,
        "a": {
            "b": 2,
            "a": 1
        }
    }
}

orderDict = dict()

# 递归嵌套
def sortDict(orgindict, flag, Orderdict):
    # 结束条件
    if flag:
        return Orderdict
    # 循环体
    for key in sorted(orgindict):
        if isinstance(orgindict[key], dict):
            # 如果值为字典将继续遍历排序
            order = dict()
            orgindict[key] = sortDict(orgindict[key], flag, order)
        Orderdict[key] = orgindict[key]
    flag = True
    return Orderdict


print(sortDict(orig, False, orderDict))

上面方法临时想的~没有细研究,仅做参考

还有使用OrderedDict进行排序,

from collections import OrderedDict
orderDict = OrderedDict()


# 递归嵌套
def sortDict(orgindict, flag, Orderdict):
    # 结束条件
    if flag:
        return Orderdict
    # 循环体
    for key in sorted(orgindict):
        if isinstance(orgindict[key], dict):
            # 如果值为字典将继续遍历排序
            order = OrderedDict()
            orgindict[key] = sortDict(orgindict[key], flag, order)
        Orderdict[key] = orgindict[key]
    flag = True
    return Orderdict


print(sortDict(orig, False, orderDict))
sorted_copy = OrderedDict(sorted(orig.items(), key=lambda x: x[0]))

顺便记录一个MD5加密函数

# 使用MD5进行加密
def encodeByMD5(sign):
    md5 = hashlib.md5()
    md5.update(sign.encode(encoding='utf-8'))
    return md5.hexdigest()

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑾怀轩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值