Python基础04 数据类型(3)集合、总结

一、集合(set)

1、语法构造

例:v = {1,‘ab’,5}
(1)由不同元素组成
(2)元素是无序的
(3)集合中元素必须是不可变类型(可哈希类型)

2、常用的方法

(1)add() 添加元素

s = {1,2,3}
s.add('abc')
print(s)    #{1, 2, 3, 'abc'}

(2)clear() 清除集合内所有元素

s = {1,2,3}
s.clear()
print(s)    #set()

(3)copy() 复制一个集合

s = {1,2,3}
v = s.copy()
print(v,id(s),id(v))    #{1, 2, 3} 2207112195872 2206965372288

(4)pop() 随机删除一个元素

s = {1,2,3}
s.pop()
print(s)    #{2, 3}

(5)remove() 删除元素,不存在会报错;discard() 删除元素,不存在不会报错

s = {1,2,3}
s.remove(2)
print(s)    #{1, 3}
s.discard('aa')
print(s)    #{1, 3}

(6)intersection() 求交集(&)

s1 = {1, 2, 3, 'ab'}
s2 = {3, 4, 'ab', 6}
print(s1.intersection(s2))  #{3, 'ab'}
print(s1 & s2)              #{3, 'ab'}

(7)union() 求并集(|)

s1 = {1, 2, 3, 'ab'}
s2 = {3, 4, 'ab', 6}
print(s1.union(s2))     #{1, 2, 3, 4, 6, 'ab'}
print(s1 | s2)          #{1, 2, 3, 4, 6, 'ab'}

(8)difference() 求差集(-)

s1 = {1, 2, 3, 'ab'}
s2 = {3, 4, 'ab', 6}
print(s1.difference(s2))    #{1, 2}
print(s1 - s2)              #{1, 2}

(9)symmetric_difference() 求交叉补集(^)

s1 = {1, 2, 3, 'ab'}
s2 = {3, 4, 'ab', 6}
print(s1.symmetric_difference(s2))      #{1, 2, 4, 6}
print(s1 ^ s2)                          #{1, 2, 4, 6}

(10)difference_update() 计算差集并更新(其他相关update()函数功能类似)

s1 = {1, 2, 3, 'ab'}
s2 = {3, 4, 'ab', 6}
s1.difference(s2)
print(s1.difference(s2),s1)     #{1, 2} {'ab', 1, 2, 3}
s1.difference_update(s2)
print(s1)                       #{1, 2}

(11)isdisjoint() 判断两个集合是否不相交(即交集为空)

s1 = {1, 2, 3, 'ab'}
s2 = {3, 4, 'ab', 6}
print(s1.isdisjoint())    #False

(12)issubset() 判断是否为子集/真子集(<= / <)

s1 = {1, 2, 3, 'ab'}
s2 = {3, 'ab'}
s3 = {1, 2, 3, 'ab'}
print(s2.issubset(s1),s2<=s1,s3<s1)    #True True False

(13)issuperset() 判断是否为父集(>= / >)

s1 = {1, 2, 3, 'ab'}
s2 = {3, 'ab'}
s3 = {1, 2, 3, 'ab'}
print(s1.issuperset(s2), s3 > s2, s3 == s1)  # True True True

(14)update() 更新为两个集合的并集

s1 = {1, 2, 3, 'ab'}
s2 = {3, 4, 'ab', 6}
s1.update(s2)
print(s1)       #{1, 2, 3, 4, 6, 'ab'}

二、数据类型总结

1、分类

(1)按元素是否可变分类
可变:列表,字典、集合
不可变:字符串、数字、元组
(2)元素按访问顺序分类:
直接访问:数字
按下标访问:字符串、列表、元组
按映射访问:字典
(3)按存放元素个数分类:
原子类型:数字、字符串
容器类型:列表、元组、字典、集合

2、类型转换

可用类型名进行转换,例:
lst = [1,2,3]
s = set(lst)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值