Python基础--集合

集合

集合是可变的数据类型
元素必须是不可变的数据类型
特征:
无序、不重复

一、创建

1)正确方式

set1 = set({1,2,3,4})
print(set1)

2)错误方式

set2 = {1,2,3,[2,3],{'name':'alex'}}  # 报错

二、增加

1)set.add(要添加的元素)

注意这个添加的元素必须是不可变数据类型

set1 = {'pyrookie','pipijiang'}
set1.add('女神')
print(set1)

{'pipijiang', '女神', 'pyrookie'}

2)set.update(iterable)

注意传入的参数必须是可迭代对象
类似于列表的extend的增加

set1 = {'pyrookie','pipijiang'}
set1.update('abc')   #类似与extend的增加
print(set1)

{'pyrookie', 'pipijiang', 'c', 'a', 'b'}

三、删除

1)随机删除 set.pop()

随机删除,并返回删除的内容

set1 = {'b', 'a', 'pipijiang', 'pyrookie', 'c', '女神'}
print(set1.pop())  # 随机删除  并返回删除的内容
print(set1)

pipijiang         
{'c', 'pyrookie', 'a', '女神', 'b'}

2)指定元素删除 set.remove(member)

指定元素删除,如果删除的元素不是集合中的元素会报错

set1 = { 'pipijiang', 'pyrookie',  '女神'}
set1.remove('女神')   
print(set1)

{'pipijiang', 'pyrookie'}

3)清空 clear()

将集合清空,只保留一个空集合

set1 = { 'pipijiang', 'pyrookie','女神'}
set1.clear()
print(set1)

set()

4)del set

从内存中删除

set1 = {1,2,3}
del set1
print(set1)


NameError: name 'set1' is not defined

四、改

没有改这个功能,因为集合的元素都是不可变数据类型

五、查

无序,只能for in 遍历查看集合中的元素

六、集合的特殊功能

1)交集 & set1.intersection(set2)

 # 返回一个交集集合
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}

print(set1 & set2)  
print(set1.intersection(set2))

{4, 5}
{4, 5}

2)并集 | set1.union(set2)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}

print(set1 | set2)
print(set1.union(set2))

{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}

3)反交集

就是对于set1 来说 独有的

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}

print(set1 - set2)
print(set1.difference(set2))  

{1, 2, 3}
{1, 2, 3}

4)子集 和 超集

1、 子集 < set1.issubset(set2)

set1 = {1,2,3}
set2 = {1,2,3,4,5,6,7,8}

print(set1 < set2)  #这两个相同,都是说明set1 是set2 的子集,set2 是 set1 的超集
print(set1.issubset(set2))

True
True

2、 超集 > set1.issubset(set2)

set1 = {1,2,3}
set2 = {1,2,3,4,5,6,7,8}

print(set2 > set1)  ##这两个相同,都是说明set1 是set2 的子集,set2 是 set1 的超集
print(set2.issuperset(set1))

True
True

七、主要功能:去重

对列表中的元素去重

li = [1,2,3,4,5,6,5,1,2]
set1 = set(li)
li = list(set1)
print(li)

[1, 2, 3, 4, 5, 6]

八、将集合转变为不可变数据类型

转换后的数据类型
1、无重复
2、没有集合的添加和删除方法

s = frozenset('barry')
print(s, type(s))

frozenset({'b', 'r', 'y', 'a'}) <class 'frozenset'>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值