Python游戏世界打怪升级之新手指引八【集合】

集合

今天我们来学习以下Python里面的集合set,它是一种无序且不重复的元素集合,有以下三个特点

  • 无序性,元素没有固定的顺序
  • 唯一性,元素是唯一且不重复
  • 可变性,可以添加、删除元素

集合通常用于去重、成员检测以及数学上的集合操作(如并集、交集、差集等)。

集合的创建

分为以下几种方法

  • 花括号{}
  • set()函数创建【空集合必须使用set创建】
# 集合的创建,空集合、{}、set()

set_0 = set()
set_1 = {1, 2, 3, 4, 5}
set_2 = set('sjoerd')
print(set_0) # set()
print(set_1) # {1, 2, 3, 4, 5}
print(set_2) # {'s', 'e', 'o', 'r', 'j', 'd'}

集合的使用

# 集合的使用
# in(),检测元素是否在集合中
print('a' in set_0) # False

# len(),集合的长度,会进行去重
print(len(set_2)) # 6

# add()添加单个元素
set_2.add('aa') # {'e', 'o', 'r', 'aa', 'j', 's', 'd'}
print(set_2)


# update(),添加多个;可以是列表、元素、集合等
set_2.update('b!')
print(set_2) # {'e', 'aa', 'r', 's', 'b', 'o', 'd', '!', 'j'}

# remove()删除元素,如果元素不存在则会报错 KeyError
# set_1.remove(7)
# print(set_1) # KeyError: 7

# discard(),删除元素,元素不存在不会报错
set_1.discard(7)
print(set_1) #{1, 2, 3, 4, 5}

# pop(),随即删除并返回一个元素,如果集合为空则会引发 KeyError。
pop_set = set_1.pop()
print(pop_set) # 1
print(set_1)  # {2, 3, 4, 5}

# clear(),清空集合
clear_set = set_1.clear()
print(clear_set) # None
print(set_1)  # set(),空集合


# copy(),返回原集合的浅拷贝
my_set = {1, 2, 3}
new_set = my_set.copy()
print(new_set)  # 输出: {1, 2, 3}
print(id(my_set)) # 1424701164224
print(id(new_set)) # 1424701165568

集合的数学操作

没错,Python里面的集合,也可以想数学世界的集合一样进行计算

# 并集union()或者|运算符
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2))  # 输出: {1, 2, 3, 4, 5}
print(set1 | set2)       # 输出: {1, 2, 3, 4, 5}

# 交集interesction()或者&运算符
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.intersection(set2))  # 输出: {3}
print(set1 & set2)             # 输出: {3}

# 差集disserence()或者 - 运算符
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.difference(set2))  # 输出: {1, 2}
print(set1 - set2)           # 输出: {1, 2}

# 对称差集symmetric_difference() 方法或 ^ 运算符
# 返回一个新集合,其中的元素不能同时属于两者
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.symmetric_difference(set2))  # 输出: {1, 2, 4, 5}
print(set1 ^ set2)                     # 输出: {1, 2, 4, 5}

posted @ 2025-03-18 16:33  小鑫仔  阅读(12)  评论(0)    收藏  举报