Python自学——集合

无序的(不可通过下标获取)、不可重复的、不可随机访问的(也没有key来完成获取)的元素集合

创建集合:

1、可变集合 set

s={1,2,3,'a',True}或者s=set(iterale)

s2 = set ('abc')

s2 = set (['a','b','c'])

s2 = set (('a','b','c'))

结果都是{'a','b','c'}或者bac或者任意顺序的abc

s2=set({'a':1,'b':2}) 结果是{'a','b'}

s={}和s=set()里面都可写推导式:

s=set(x for xin range(0,10))

s={x for xin range(0,10)}

2、不可变集合 frozenset

fs=frozenset()里面也可以是字符串列表元组和字典,结果是frozenset({})

fs=frozenset()里面也可以放推导式

创建空集合:

s=set()

fs=frozenset()

不能用s={},如果s={}就会变成空字典

PS:集合中的元素必须是可哈希的(不变类型,也就是说不能有列表和字典作为集合中的元素!!)

集合常用操作:

1.单一集合操作

1.1 可变集合

1.1.1 增:.add(element)

1.1.2 删:

.remove(element) 如果element不存在就报错

.discard(element)如果element不存在啥也不做

.pop()随机删一个元素

.clear清空集合

1.1.3查:

遍历,生成迭代器

its = iter(s)

print(next(its))

或者

for v in its

print(v)

1.2 不可变集合

只能查。跟set一样

2.集合间的操作

2.1 交集

2.1.1 .intersection(iterable)

result = s1.intersection(s2)

result的类型跟.左侧的集合一样,result是返回的集合

2.1.2 &

result = s1 & s2

result的类型跟左侧的集合一样,result是返回的集合

2.1.3 .intersection_update

s1.intersection_update(s2)

result是none,s1变成s1和s2的交集

s2可以是字符串、列表、集合、字典,其中字典进行交集的是key

s1只能是可变集合

2.2并集

2.2.1 .union

result = s1.union(s2)

result的类型跟.左侧的集合一样,result是返回的集合

2.2.2 |

result = s1 | s2

result的类型跟.左侧的集合一样,result是返回的集合

2.2.3 .update

result = s1.update(s2)

result是none,s1是s1和s2的并集

2.3 差集

2.3.1 .difference

result = s1.difference(s2)

result的类型跟.左侧的集合一样,result是返回的集合

2.3.2  -

result = s1 - s2

result的类型跟.左侧的集合一样,result是返回的集合

2.3.3 .difference_update

result = s1.difference_update(s2)

result是none,s1是s1和s2的差集

2.4 判定

2.4.1 .isdisjoint()  两集合不相交

s1.isdisjoint(s2)

2.4.2 .issuperset

s1.issuperset(s2) s1包含s2

2.4.3 .issubset()

s1.issubset()s2包含s1

以上返回的都是布尔值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值