Python中集合类型(set)学习小结
概述
Python中的集合(set)是一种用于存储无序但唯一元素的数据类型。它基于数学中的集合概念,并且支持集合的各种数学运算。集合可以包含任何可哈希的数据类型,但集合本身是不可哈希的,而且没有顺序。
与列表和元组不同,集合没有索引,因此不能通过索引访问元素。但是,集合支持的操作范围更广,比如交集、并集、差集等等。
创建集合
可以使用花括号({})或set()函数来创建集合。注意,如果使用花括号来创建空集合,必须使用set()函数。否则,花括号创建的将是一个空字典。
# 创建集合
set1 = {1, 2, 3, 4, 5}
set2 = set('hello')
set3 = set()
# 打印集合
print(set1) # {1, 2, 3, 4, 5}
print(set2) # {'e', 'l', 'h', 'o'}
print(set3) # set()
集合运算
并集
并集是指两个集合的所有元素的集合。使用|
运算符或union()
方法进行并集计算。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 计算并集
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8}
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 7, 8}
交集
交集是指两个集合中都包含的元素的集合。使用&
运算符或intersection()
方法进行交集计算。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 计算交集
print(set1 & set2) # {4, 5}
print(set1.intersection(set2)) # {4, 5}
差集
差集是指只属于一个集合而不属于另一个集合的元素的集合。使用-
运算符或difference()
方法进行差集计算。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 计算差集
print(set1 - set2) # {1, 2, 3}
print(set1.difference(set2)) # {1, 2, 3}
对称差
对称差是指两个集合中所有不相同元素的集合。使用^
运算符或symmetric_difference()
方法进行对称差计算。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 计算对称差
print(set1 ^ set2) # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}
其他集合操作
添加元素
使用add()
方法来向集合中添加元素。
set1 = {1, 2, 3, 4, 5}
# 添加元素
set1.add(6)
print(set1) # {1, 2, 3, 4, 5, 6}
删除元素
使用remove()
方法从集合中删除元素。
set1 = {1, 2, 3, 4, 5}
# 删除元素
set1.remove(3)
print(set1) # {1, 2, 4, 5}
示例说明
示例一
下面的示例演示如何使用集合来统计一个字符串中不同字符的个数。
s = 'hello, world'
unique_chars = set(s)
print(len(unique_chars)) # 10
示例二
下面的示例演示如何使用集合来去除一个列表中的重复元素。
lst = [1, 2, 3, 4, 3, 2, 1]
unique_lst = set(lst)
print(unique_lst) # {1, 2, 3, 4}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中集合类型(set)学习小结 - Python技术站