• 技术文章 >Python技术 >Python基础教程

    python不可变集合中改变元素

    小妮浅浅小妮浅浅2021-01-12 18:16:52原创2984

    我们之前所学的集合可以往其中增加删除元素,使用上比较灵活,但我们也有一些时候需要固定集合的元素,不让集合出现变动,增加数据的稳定性,这时候就需要python中的frozenset不可变集合。那么如果我们试着去改变frozenset里的元素会出现什么情况呢?接下来再学习了简单不可变集合的概念后,我们会一起进行测试。

    frozenset是不可变的,其内容在被创建后不能再改变,不像set集合,可以增加删除集合中的元素。因此可以被用作字典的键或其他集合的元素。

    1. 传入一个可迭代对象,生成一个新的不可变集合

    >>> a = frozenset(range(10))
    >>> a
    frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
    >>> b = frozenset('I am a Pythoner')
    >>> b
    frozenset({'y', 'I', ' ', 'r', 't', 'm', 'h', 'o', 'a', 'e', 'n', 'P'})

    2. 不传入参数时,生成的空的不可变集合。

    >>> c = frozenset()
    >>> c
    frozenset()

    3.集合的元素必须为hashable。要表示由集合对象构成的集合,所有的内层集合必须为frozenset对象。

    >>> f = frozenset()
    >>> f
    frozenset([])
    >>> f = frozenset('asdf')
    >>> f
    frozenset(['a', 's', 'd', 'f'])
    >>> f = frozenset([1,2,3,4])
    >>> f
    frozenset([1, 2, 3, 4])
    >>> f = frozenset((1,2,3,4))
    >>> f
    frozenset([1, 2, 3, 4])
    >>> f = frozenset({1:2, 'a':2, 'c':3})
    >>> f
    frozenset(['a', 1, 'c'])

    如果试图改变不可变集合中的元素,就会报AttributeError错误。

    不可变集合,除了内容不能更改外,其他功能及操作跟可变集合set一样。

    通过本篇学习frozenset不可变集合我们可以发现,如果强行更改其中的元素就会报错。其它的功能使用在set集合中已经讲过,这里就不过多叙述。

    专题推荐:python不可变集合
    上一篇:python中的all函数是如何用的? 下一篇:python集合和列表推导式哪种方法去重快

    相关文章推荐

    • python数据结构里的集合怎么用?• set在python中创建空集合• 新增元素在python集合中有哪些方法?• python集合与序列遍历的方法一样吗• python集合中的操作符有哪些?怎么用?• python中集合的范围怎么比较包容性?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网