Loading

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'}
posted @ 2023-01-26 21:53  nliuc  阅读(62)  评论(0)    收藏  举报