Python3内置函数汇总

目录

python3 frozenset() 函数详解 冻结对象生成不可变集合

frozenset()函数的主要作用是生成一个不可变的frozenset对象集合,它的基本功能和set()相似都会将重复值去除,但是它是不可变的,一旦生成就永远不能被改变,对一些动态方法是不可使用的,例如add()和remove()等。
它是Python的内置函数,在python文件中直接可以使用。

frozenset

语法

frozenset([iterable])

参数

iterable - 一般传入迭代对象,例如list(列表),tuple(元组),dict(字典)等,但如果传入的是字符串,则会被以单个字符的形式进行分割,最终组成一个集合。

返回值

frozenset对象 - 一个不可变的集合

实例

§ 实例1 - 列表
>>> l = ['a', 'b', 'c', 'd', 'e', 'a', 'b']
>>> f = frozenset(l)
>>> f
frozenset({'c', 'b', 'a', 'e', 'd'})
§ 实例2 - 字符串
>>> s = 'abcdefabc'
>>> f = frozenset(s)
>>> f
frozenset({'c', 'b', 'a', 'e', 'd', 'f'})
§ 实例3 - 保持原有顺序(索引)

通过前面两个例子,可以看到,它们都能够去重,但是会打乱原顺序,在实际业务逻辑中,往往我们需要保留原顺序,我们可以如下操作:

>>> l = ['a', 'b', 'c', 'd', 'e', 'a', 'b']
>>> f = list(frozenset(l))
>>> f
['b', 'a', 'e', 'c', 'd']

#对frozenset的列表进行重新排序,使用的原数组的索引。
>>> f.sort(key = l.index)
>>> f
['a', 'b', 'c', 'd', 'e']
>>> s = 'abcdefabc'
>>> f = list(frozenset(s))
>>> f
['b', 'a', 'e', 'f', 'c', 'd']

#字符串同样受用。
>>> f.sort(key = s.index)
>>> f
['a', 'b', 'c', 'd', 'e', 'f']

如果有任何建议或意见,欢迎交流沟通

作者:张恺阳

本文链接:https://www.zky.name/article/36.html

来源:张恺阳博客