python 有序字典 OrderedDict

目录

有序字典OrderedDict

在有序字典中更新一个键的值时,该键的位置不会改变。插入顺序仍然会保持不变。

python 列表


有序字典OrderedDict

在有序字典中更新一个键的值时,该键的位置不会改变。插入顺序仍然会保持不变。

首先,为什么要用有序字典?

个人感觉有3个好处

1)取值的时候不用遍历,比list列表快捷,高效。

2)又有顺序,比普通的字典更好管理。

3)可以开头取出,结尾取出,有队列的优点,又可以按key取值,比队列方便实用。

有序字典的顺序是你插入时候的顺序

不是自动排序,更新值也不会改变顺序

import heapq


import numpy as np

if __name__ == '__main__':
    import collections

    dic = collections.OrderedDict()

    dic[1] = 'v1'

    dic[3] = 'v3'
    dic[4] = 'v3'
    dic[2] = 'v2'

    for k, v in dic.items():
        print( k, v)

popitem()是取最后一条数据,最新插入的: 


if __name__ == '__main__':
    import collections

    dic = collections.OrderedDict()



    dic[3] = 'v3'
    dic[4] = 'v4'
    dic[2] = 'v2'
    dic[1] = 'v1'
    print(dic)


    #最新插入的,最后一条
    print(dic.popitem())
    dic[8] = 'v8'
    #最先插入的,第1条
    print(dic.popitem(last=False))

结果是2,v2

获取长度:

    print(len(dic))

再看几个例子:

dd = {"banana": 3, "apple":4, "pear": 1, "orange": 2}

#按key排序

kd = collections.OrderedDict(sorted(dd.items(), key=lambda t: t[0]))

print kd

#按照value排序

vd = collections.OrderedDict(sorted(dd.items(),key=lambda t:t[1]))

print vd

#输出

OrderedDict([("apple", 4), ("banana", 3), ("orange", 2), ("pear", 1)])

OrderedDict([("pear", 1), ("orange", 2), ("banana", 3), ("apple", 4)])

python 列表

python 列表也有队列的功能:

if __name__ == '__main__':

    if __name__ == '__main__':
        list = [11, 12, 13, 14, 15]
        list.pop(0)
        print(list)
        list.pop(0)
        print(list)

[12, 13, 14, 15]
[13, 14, 15]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI算法网奇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值