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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!