• python中set和frozenset方法和区别


     

    set(可变集合)与frozenset(不可变集合)的区别
    set无序排序且不重复,是可变的,有add(),remove()等方法。既然是可变的,所以它不存在哈希值。基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交集), difference(差集)和sysmmetric difference(对称差集)等数学运算.
    sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, 或其它类序列的操作。
    frozenset是冻结的集合,它是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法。


    一、集合的创建

    set()和 frozenset()工厂函数分别用来生成可变和不可变的集合。如果不提供任何参数,默认
    会生成空集合。如果提供一个参数,则该参数必须是可迭代的,即,一个序列,或迭代器,或支持
    迭代的一个对象,例如:一个列表或一个字典。

    复制代码
     1 >>> s=set('cheeseshop')  使用工厂方法创建
     2 >>> s
     3 {'h', 'c', 'o', 's', 'e', 'p'}
     4 >>> type(s)
     5 <type 'set'>
     6 
     7 >>> s={'chessseshop','bookshop'}直接创建,类似于list的[]和dict的{},不同于dict的是其中的值,set会将其中的元素转换为元组
     8 >>> s
     9 {'bookshop', 'chessseshop'}
    10 >>> type(s)
    11 <type 'set'>
    12 
    13 不可变集合创建:
    14 >>> t=frozenset('bookshop')
    15 >>> t
    16 frozenset({'h', 'o', 's', 'b', 'p', 'k'})
  • 相关阅读:
    Java学习----不变的常量
    Java学习----Java数据类型
    Java学习----Java程序结构
    Java学习----main详解
    (转)你知道Android也有安全模式吗?(地球人都知道了吧)
    Android学习----打印日志Log
    Android学习----五大布局
    Android学习-----Button点击事件几种写法
    mysql建立索引 删除索引
    MySQL查看SQL语句执行效率
  • 原文地址:https://www.cnblogs.com/bonelee/p/7867441.html
Copyright © 2020-2023  润新知