Python高级用法:有序字典(OrderedDict)与不可变集合(frozenset)

本文介绍了Python中的有序字典OrderedDict及其特性,如初始化、popitem()方法和move_to_end()方法。同时,讨论了不可变集合frozenset的性质,强调其在字典键和集合元素中的应用,以及为何不能包含可变集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有序字典(OrderedDict)

Python标准库的collections模块提供了名为OrderedDict的有序字典。它选择性地接受一个可迭代对象作为初始化参数:

from collections import OrderedDict
OrderedDict((str(number), None) for number in range(5)).keys()

在这里插入图片描述

OrderedDict还有一些其他功能,例如利用popitem()方法在双端取出元素或者利用move _ to _ end()方法将指定元素移动到某一端。

popitem(last=True)的作用是有序字典返回并删除键值对。如果 last 为 true,则按 LIFO 顺序返回。如果为 false,则为 FIFO 顺序。

move_to_end(key, last=True)将现有键移动到有序字典的任一端。如果last为true(默认值),则移动到右端。当last为false时移动到最左侧。

用法如下:

from collections import OrderedDict
d = OrderedDict.fromkeys('abcde')
d.move_to_end('b')
''.join(d)
d.move_to_end('b', last=False)
''.join(d)

运行效果如下
在这里插入图片描述

不可变集合(frozenset)

不可变集合是指一旦创建内容就不再发生变化的集合,他是一种不可变的、可哈希的、无序的集合,其元素是唯一的、不可变的(可哈希的)对象。

由于frozenset()具有不变性,它可以用作字典的键,也可以作为其他set()和frozenset()的元素。在一个set()或frozenset()中不能包含另一个普通的可变set()

正确用法如下:

set([frozenset([1,2,3]), frozenset([2,3,4])])

在这里插入图片描述

frozenset([frozenset([1,2,3]), frozenset([2,3,4])])

在这里插入图片描述

但如果使用set对象作为set中的值,将会出错
效果如下

set([set([1,2,3]), set([2,3,4])])

在这里插入图片描述

视频讲解

Python高级用法:有序字典(OrderedDict)与不可变集合(frozenset)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

艾醒(AiXing-w)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值