09-Python-集合的常用方法
集合
集合是把一堆值存在一起,集合的初衷不是取单个值,主要用于去重和关系运算。
集合的定义
**集合的定义:**在{}内用逗号分个开多个元素,多个元素满足以下三个条件:
- 集合内元素必须为不可变类型
- 集合内的元素无序
- 集合内元素没有重复
集合的关系运算
取出两个集合的共同值
# 1.1 关系运算
Friends1={'egon','alice','peter'}
Friends2={'egon','alice','jack','danle'}
Friends3={}
for x in Friends1:
if x in Friends2:
Friends3.append(x)
print(Friends3)
集合的类型转换
集合的类型转换
total=set("hellohaha")
print(total)
# 运行结果为{'h', 'e', 'l', 'a', 'o'},集合本身就是无序
print(type(total))
# 运行结果为<class 'set'>
集合的关系运算
集合擅长与另外一个集合找关系
01-取交集
Friends1={'egon','alice','peter'}
Friends2={'egon','alice','jack','danle'}
print(Friends1&Friends2)
print(Friends1.intersection(Friends2))
# 运行结果为{'alice', 'egon'}
02-取并集
Friends1={'egon','alice','peter'}
Friends2={'egon','alice','jack','danle'}
print(Friends1|Friends2)
print(Friends1.union(Friends2))
# 运行结果为{'danle', 'alice', 'peter', 'jack', 'egon'
03-取差集
Friends1 = {'eg ', 'alice', 'peter'}
Friends2 = {'egon', 'alice', 'jack', 'danle'}
print("Friends1-Friends2=", Friends1 - Friends2)
print(Friends1.difference(Friends2))
# 运行结果为{'peter'}
print("Friends2-Friends1=", Friends2 - Friends1)
# 运行结果为Friends2-Friends1= {'jack', 'danle'}
04-取对称差集
**对称差集:**两个集合所有的元素减去两个集合共有的元素即为对称差集
Friends1 = {'egon', 'alice', 'peter'}
Friends2 = {'egon', 'alice', 'jack', 'danle'}
print(Friends1 ^ Friends2)
print(Friends1.symmetric_difference(Friends2))
# 运行结果为{'danle', 'peter', 'jack'}
05-父子集
Friends1 = {'egon', 'alice', 'peter'}
Friends2 = {'egon', 'alice', 'jack', 'danle'}
Friends3 = {'egon'}
print(Friends2 < Friends1)
print(Friends1.issuperset(Friends2))
print(Friends3 < Friends1)
print(Friends1.issuperset(Friends3))
'''
运行结果为:
False
True
'''
集合的去重
集合的去重只能针对不可变类型,不能带列表和字典这种可变类型,并且无法保证原来的顺序
集合的删除
Friends1 = {'eg ', 'alice', 'peter'}
Friends2 = {'egon', 'alice', 'jack', 'danle'}
Friends3 = {'egon'}
Friends1.discard("eg ")
print(Friends1)
# 运行结果为{'alice', 'peter'}

浙公网安备 33010602011771号