python数据类型-集合set

1 集合(set)的定义

1.1 集合是一个无序且不重复元素的序列:

1)无序:存储顺序和添加的顺序不一定相同,不支持索引、切片
2)元素不重复:当添加重复元素时,集合会自动去重。因此set常用来消除重复元素

1.2 创建方式

可以通过大括号{} 或者 set()函数创建,
注:创建空集合时必须用set函数创建,因为{}是用来创建一个空的字典

set1 = {1, 2, 3, 2}
print(type(set1), set1)  # <class 'set'> {1, 2, 3}  自动消除重复元素

set2 = set([1, 4, 'henry', 'tom'])
print(type(set2))  # <class 'set'>

# 创建空集合必须用set函数
set3 = {}
print(type(set3))  # <class 'dict'>
set4 = set([])
print(type(set4))  # <class 'set'>

2 集合运算(针对于两个集合之间)

差集:-
并集:|
交集:&
不同时包含:^

a = set('abcdef')
b = set('abc123')
set1 = a - b  # 差集,在a中不在b中
print(set1)  # {'e', 'f', 'd'}

set2 = a | b  # 并集
print(set2)  # {'e', 'f', '1', '2', '3', 'c', 'd', 'b', 'a'}

set3 = a & b  # 交集
print(set3)  # {'c', 'b', 'a'}

set4 = a ^ b  # 不同时存在于a和b中的元素,即:a与b的并集 减去 a与b的交集
print(set4)  # {'2', '3', 'f', '1', 'e', 'd'}

3 集合的操作

1)添加元素:
add:添加单个元素
update:添加多个元素
remove:删除元素,元素不存在会报错
discard:删除元素,元素不存在不会报错
pop():随机删除一个元素
in : 判断元素是否在集合内
set1.issubset(set2): 为True时说明–set1的超集为set2
超集:父集、被包含的意思

set11 = {1, 2, 3, 'a', 'b', 'c'}
set22 = {'a', 'b'}
set11.add('tom')  # 增加一个元素
print(set11)  # {1, 2, 3, 'a', 'b', 'c', 'tom'}

set11.remove(2)
print(set11)  # {1, 3, 'a', 'b', 'c', 'tom'}

# set11.remove('henry') # 集合中没有此元素,用remove会报错
set11.discard('henry')  # 集合中没有此元素,用discard不会报错

x = set11.pop()  # 随机删除一个元素
print(set11)

set11.update(([10, 11, 12]))
print(set11)  # {3, 'a', 'c', 'tom', 10, 11, 12, 'b'}

print('tom' in set11)  # True
print('henry' in set11)  # False

print(set22.issubset(set11)) # true; 超集,set22的超集是set11,即 set11包含了set22
  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值