Python 集合(补充说明一下)

集合
集合的特点

集合表现形式set 集合和列表非常相似
不同点:

  1. 集合只能存储不可变对象
  2. 集合中存储的对象是无序的
  3. 集合不能出现重复元素
集合的创建
  1. 创建空集合: 通过class set来创建
    这里特意指出空集合是为了避免和空字典的概念混淆,集合的符号也是花括号{},但是直接用
    {}去定义,python解释器会将它识别为字典而非集合
set1 = {}
print(type(set1))
set2 = set()  # 集合是可变对象,空集合okay的,空元组,元组不可变没什么意义
print(type(set2))
<class 'dict'>
<class 'set'>
  1. 用{}来创建集合
set1 ={"string",1,(1,2,3)}
print(set1)
print(set1[0])
'''
第一次执行 {1, 'string', (1, 2, 3)}
第二次执行 {1, (1, 2, 3), 'string'}
和set1定义的时候的顺序都不一致

print(set1[0]) 直接报错,因为无序,不支持索引
TypeError: 'set' object does not support indexing

set2 ={[1,2,3]}
print(set2)
set2中有元素[1,2,3]是序列,是可变对象,故不支持
'''
  1. 通过set()来将序列和字典转换成集合
    业务场景是去重,因为集合不可以出现重复元素
lst = [1,1,3,2,4,4,5]
set1 = set(lst)
print(set1)
# 去重后强转回来成为list
lst = list(set1)
print(lst)
1, 2, 3, 4, 5}
[1, 2, 3, 4, 5]
集合的方法

len() 使用len()来获取集合中元素的数量
add()像集合中添加元素
update()将一个集合中的元素添加到另一个集合当中
pop()随机删除集合中的一个元素一般是删除最后一个元素
remove() 删除集合中指定的元素
clear() 清空集合

# 定义一个空集合
set1 = set()
# 输出集合的长度
print(len(set1))
#为集合添加元素
set1.add("string")
print(set1)
# 用集合set2来扩展set1,和字典的update功能一致,和列表的extend功能一致
set2 ={"你好","中国"}
set1.update(set2)
print(set1)
# remove 操作,没有返回值
set1.remove("中国")
print(set1)
# pop()随机弹出一个元素
val=set1.pop()
print(val)
# clear 清空集合
set1.clear()
print(set1)
0
{'string'}
{'中国', '你好', 'string'}
{'你好', 'string'}
你好
set()
集合的运算 (数学上的一些概念)
& 交集运算
| 并集运算
- 差集运算
^ 亦或集
<= 检查一个集合是否是另一个集合的子集
< 检查一个集合是否是另一个集合的真子集
>=检查一个集合是否是另一个集合的超集
>检查一个集合是否是另一个集合的真超集
set1={1,2,3,4,5}
set2={3,4,5,6,7}
set3={3,4,5}
print(set1 & set2)
print(set1 | set2)
print(set1 - set2)
print(set1 ^ set2)
print(set3 <= set1)
print(set2 >= set3)

执行结果:

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值