“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 的用法。