集合

集合(Set)是 Python 中的一个数据类型,用于存储唯一且无序的元素。集合中的元素是不可变的,并且没有重复的值。

集合使用花括号 {} 表示,元素之间用逗号 , 分隔。

定义一个集合

my_set = set()

print(my_set)  # set()
print(type(my_set))  # <class 'set'>

集合中的元素是唯一的,如果在创建集合时有重复的元素,只会保留一个副本。

my_set = {1, 2, 2, 3, 3, 4, 5}
print(my_set)  # 输出: {1, 2, 3, 4, 5}

集合的常用方法

union 或 |

并集 或者 合计 全部取出

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

union_set = set1.union(set2)
simple_union_set = set1 | set2
print(union_set)  # {1, 2, 3, 4, 5, 6, 7, 8}
print(simple_union_set)  # {1, 2, 3, 4, 5, 6, 7, 8}

intersection 或 &

交集 共有的部分

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

intersection_set = set1.intersection(set2)
simple_intersection_set = set1 & set2

print(intersection_set)  # {4, 5}
print(simple_intersection_set)  # {4, 5}

difference 或 -

一个集合减去另外一个集合的共有部分,保留剩下的

a - b 表示a减去a和b共同的部分,保留a独有的东西。

b - a 表示b减去a和b共同的部分,保留b独有的东西。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 共有部分是{4, 5} set1去除共有部分
difference_set = set1.difference(set2)
simple_difference_set = set1 - set2

print(difference_set)  # {1, 2, 3}
print(simple_difference_set)  # {1, 2, 3}

symmetric_difference_set 或 ^

两个集合的独有元素(即去掉共有的元素)
相当于先并集然后减去交集

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

symmetric_difference_set = set1.symmetric_difference(set2)
simple_symmetric_difference_set = set1 ^ set2

print(symmetric_difference_set)  # {1, 2, 3, 6, 7, 8}
print(simple_symmetric_difference_set)  # {1, 2, 3, 6, 7, 8}

issubset 或 <=

判断集合是否是另一个集合的子集。

set1 = {1, 2, 3, 4, 5}
set2 = {2, 3}

result = set2.issubset(set1)
simple_result = set1 <= set2

print(result)  # True
print(simple_result)  # False

issuperset 或 >=

判断集合是否是另一个集合的超集。

set1 = {1, 2, 3, 4, 5}
set2 = {2, 3}

result = set1.issuperset(set2)
simple_result = set1 >= set2

print(result)  # True
print(simple_result)  # True

isdisjoint

判断集合是否与另一个集合没有交集。

如果两个集合没有交集(共同部分)则返回True 否则返回False

set1 = {1, 2, 3, 4, 5}
set2 = {2, 3}

result = set1.isdisjoint(set2)
print(result)  # False
set1 = {1, 2, 3, 4, 5}
set2 = {7, 9}

result = set1.isdisjoint(set2)
print(result)  # True

copy

创建并返回集合的一个副本

set1 = {1, 2, 3, 4, 5}
set2 = set1.copy()

print(set2)  # set1 = {1, 2, 3, 4, 5}

add

向集合中添加一个元素

set1 = {1, 2, 3, 4, 5}
set1.add(8)

print(set1)  # {1, 2, 3, 4, 5, 8}

update

将可迭代的元素添加到集合中

set1 = {1, 2, 3, 4, 5}
set1.update("小满最棒啦")

print(set1) # {'满', 1, 2, 3, 4, 5, '小', '棒', '啦', '最'}
set1 = {1, 2, 3, 4, 5}
set1.update(["a", "b"])

print(set1)  # {1, 2, 3, 4, 5, 'a', 'b'}
set1 = {1, 2, 3, 4, 5}
set1.update({"小满": "最棒啦"})

print(set1)  # {1, 2, 3, 4, 5, '小满'}
set1 = {1, 2, 3, 4, 5}
data = ("Eva", "Amigo")

set1.update(data)
print(set1)  # {1, 2, 3, 4, 5, 'Amigo', 'Eva'}

remove

从集合中移除指定的元素,如果元素不存在会引发 KeyError。

set1 = {1, 2, 3, 4, 5}
set1.remove(3)

print(set1)  # {1, 2, 4, 5}
set1 = {1, 2, 3, 4, 5}
set1.remove(8)

print(set1)  # KeyError: 8

discard

从集合中移除指定的元素,如果元素不存在不会引发错误。

set1 = {1, 2, 3, 4, 5}
set1.discard(8)

print(set1)  # {1, 2, 3, 4, 5}

pop

随机移除并返回集合中的一个元素。

set1 = {1, 2, 3, 4, 5}
number = set1.pop()

print(number)  # 1
print(set1)  # {2, 3, 4, 5}

clear

清空集合里面的元素

set1 = {1, 2, 3, 4, 5}
set1.clear()

print(set1)  # set()

删除集合

set1 = {1, 2, 3, 4, 5}
print(set1)

del set1
print(set1)  # NameError: name 'set1' is not defined.
posted @ 2023-11-28 16:34  小满三岁啦  阅读(4)  评论(0编辑  收藏  举报