set在python里的含义和用法

  • Post category:Python

“set”在Python中是一种可变的无序集合数据类型,可以用来存储一组唯一的元素,且只能存储可哈希(hashable)的对象。通常,我们使用大括号 {} 或 set() 函数来创建一个空的 set 对象。下面我们详细介绍 set 在 Python 中的含义和用法:

创建 set

可以使用以下两种方法创建 set:

set1 = {1, 2, 3, 4, 5}  # 直接用花括号创建 set
set2 = set([1, 2, 3, 4, 5])  # 使用 set() 函数创建 set
print(set1)  # {1, 2, 3, 4, 5}
print(set2)  # {1, 2, 3, 4, 5}

添加元素到 set

通过 add() 方法可以添加元素到 set:

set1.add(6)
set1.add("hello")
print(set1) # {1, 2, 3, 4, 5, 6, 'hello'}

删除 set 中的元素

可以使用 remove() 或 discard() 方法删除 set 中的元素:

set1.remove(4)
print(set1)  # {1, 2, 3, 5, 6, 'hello'}

set1.discard(100)
print(set1)  # {1, 2, 3, 5, 6, 'hello'}

remove() 方法会在删除元素时,如果元素不存在,会引发 KeyError。而 discard() 方法则不会抛出异常,即使元素不存在也不会影响删除操作执行之后的 set 结果。

集合间的运算

在 Python 中,set 可以进行包括并集、交集、差集等计算:

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

# 并集
set3 = set1.union(set2)
print(set3) # {1, 2, 3, 4, 5, 6, 7, 8}

# 交集
set4 = set1.intersection(set2)
print(set4) # {4, 5}

# 差集
set5 = set1.difference(set2)
print(set5) # {1, 2, 3}

# 对称差集
set6 = set1.symmetric_difference(set2)
print(set6) # {1, 2, 3, 6, 7, 8}

遍历 set

可以使用 for 循环遍历 set 中的每一个元素:

set1 = {1, 2, 'a', 'b'}

for item in set1:
    print(item)

安全性说明

需要注意的是,set 这个数据类型是可变的,所以当多个变量引用同一个 set 对象时,一个变量的修改会影响到另外的变量。

另外,set 不能存储可变的元素,因为无法保证元素值的唯一性。这也意味着 set 不能存储 list、dict 和 set 等可变对象。

上面是 set 在 Python 中的含义和用法的完整攻略,希望可以帮助你更好地理解 set 的用法。