python set 用法

在 Python 中,set 是一种无序的、可变的集合数据类型,用于存储唯一的元素。它主要用于快速去重和集合运算(如交集、并集、差集等)。

环境信息

  • Python 3

set 基本操作

创建集合

可以使用花括号 {}set() 函数来创建集合。

  • 使用花括号创建集合

    # 创建一个包含一些元素的集合
    my_set = {1, 2, 3, 4, 5}
    print(my_set) # 输出: {1, 2, 3, 4, 5}
  • 使用 set() 函数创建集合

    # 使用 set() 函数从一个可迭代对象创建集合
    my_set = set([1, 2, 3, 4, 5])
    print(my_set) # 输出: {1, 2, 3, 4, 5}

    # 创建一个空集合
    empty_set = set()
    print(empty_set) # 输出: set()

集合的基本操作

添加元素

使用 add() 方法向集合添加单个元素。

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

移除元素

使用 remove() 方法移除集合中的指定元素,如果元素不存在会引发 KeyError。使用 discard() 方法移除元素,如果元素不存在不会引发异常。

my_set = {1, 2, 3}
my_set.remove(2)
print(my_set) # 输出: {1, 3}

my_set.discard(3)
print(my_set) # 输出: {1}

# remove 不存在的元素会引发 KeyError
# my_set.remove(4) # KeyError: 4

# discard 不存在的元素不会引发异常
my_set.discard(4)
print(my_set) # 输出: {1}

清空集合

使用 clear() 方法清空集合中的所有元素。

my_set = {1, 2, 3}
my_set.clear()
print(my_set) # 输出: set()

集合的长度

使用 len() 函数获取集合中元素的个数。

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

集合运算

并集

使用 | 运算符或 union() 方法。

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

# 使用 | 运算符
print(set1 | set2) # 输出: {1, 2, 3, 4, 5}

# 使用 union() 方法
print(set1.union(set2)) # 输出: {1, 2, 3, 4, 5}

交集

使用 & 运算符或 intersection() 方法。

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

# 使用 & 运算符
print(set1 & set2) # 输出: {3}

# 使用 intersection() 方法
print(set1.intersection(set2)) # 输出: {3}

差集

使用 - 运算符或 difference() 方法。

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

# 使用 - 运算符
print(set1 - set2) # 输出: {1, 2}

# 使用 difference() 方法
print(set1.difference(set2)) # 输出: {1, 2}

对称差集

使用 ^ 运算符或 symmetric_difference() 方法。

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

# 使用 ^ 运算符
print(set1 ^ set2) # 输出: {1, 2, 4, 5}

# 使用 symmetric_difference() 方法
print(set1.symmetric_difference(set2)) # 输出: {1, 2, 4, 5}

子集和超集

子集

使用 issubset() 方法检查一个集合是否为另一个集合的子集。

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

print(set1.issubset(set2)) # 输出: True

超集

使用 issuperset() 方法检查一个集合是否为另一个集合的超集。

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

print(set2.issuperset(set1)) # 输出: True