python中set和frozenset方法和区别

先简单说一下set

t.add('x')            # 添加一项
s.update([10,37,42])  # 在s中添加多项
t.remove('H') # 删除一项
len(s)  # set 的长度
x in s # 测试 x 是否是 s 的成员 
x not in s   # 测试 x 是否不是 s 的成员 
s.issubset(t)  
s <= t  # 测试是否 s 中的每一个元素都在 t 中 
s.issuperset(t)  
s >= t  # 测试是否 t 中的每一个元素都在 s 中 
s.union(t)  
s | t  # 返回一个新的 set 包含 s 和 t 中的每一个元素 
s.intersection(t)  
s & t  # 返回一个新的 set 包含 s 和 t 中的公共元素 
s.difference(t)  
s - t  # 返回一个新的 set 包含 s 中有但是 t 中没有的元素 
s.symmetric_difference(t)  
s ^ t  # 返回一个新的 set 包含 s 和 t 中不重复的元素 
s.copy()  # 返回 set “s”的一个浅复制  

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方法。

http://www.cnblogs.com/panwenbin-logs/p/5519617.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,`frozenset()`函数用于创建一个不可变的集合(frozenset),它和`set()`函数的功能类似,都是用于创建集合数据类型。不同之处在于,`frozenset()`函数创建的集合是不可变的,一旦创建就无法修改,而`set()`函数创建的集合是可变的。 `frozenset()`函数可以接受一个可迭代对象作为参数,例如列表、元组、字符串等,它会将可迭代对象的元素添加到集合,并自动去除重复元素。例如: ```python s = frozenset([1, 2, 3, 2, 1]) print(s) # 输出 frozenset({1, 2, 3}) ``` 上面的代码,我们使用`frozenset()`函数创建了一个包含整数1、2、3的不可变集合对象。由于列表包含重复元素,因此在创建集合时会自动去除重复元素。 和`set()`函数类似,`frozenset()`函数还可以用于将其他数据类型转换为不可变集合类型。例如,我们可以使用`frozenset()`函数将字符串转换为不可变集合类型,以便进行集合操作,例如求并集、交集等。例如: ```python s1 = frozenset('hello') s2 = frozenset('world') print(s1) # 输出 frozenset({'l', 'e', 'h', 'o'}) print(s2) # 输出 frozenset({'l', 'r', 'd', 'w', 'o'}) print(s1 | s2) # 输出 frozenset({'h', 'd', 'r', 'e', 'w', 'l', 'o'}) print(s1 & s2) # 输出 frozenset({'l', 'o'}) ``` 上面的代码,我们首先使用`frozenset()`函数将字符串转换为不可变集合类型,然后使用`|`和`&`操作符分别求出集合的并集和交集。由于集合是不可变的,因此无法修改集合的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值