zoukankan      html  css  js  c++  java
  • 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'})
  • 相关阅读:
    C库函数标准编程之fscanf()函数解读及其实验
    WPF-20:richtextbox相关操作(转)
    C++内存管理学习笔记(7)
    Android 网络编程 Socket Http
    C++ Preprosessor import
    JAVA Socket(多个客户同时连接,信息共享) client (java/ruby)
    WPF页面跳转
    jenkis编译报错:需要class,interface或enum
    The 7 Stages Of Scaling Web Apps--reference
    大型网站架构演变和知识体系--转
  • 原文地址:https://www.cnblogs.com/bonelee/p/7867441.html
Copyright © 2011-2022 走看看