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

2023-12-28 18:03:40

有序字典(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])])

在这里插入图片描述

文章来源:https://blog.csdn.net/DuLNode/article/details/135272720
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。