Python3中set(集合)的语法总结分享
set
是 Python 中的一种可变容器类型,它是一个无序且不重复的集合,可以进行集合运算,如交集、并集、差集等。
创建集合
创建集合可以使用花括号或 set()
函数,注意空集合只能使用 set()
函数创建。
# 使用花括号创建
fruits = {"apple", "banana", "orange"}
# 使用set()函数创建
nums = set([1, 2, 3, 4, 5])
empty_set = set()
集合运算
Python 中可以对集合进行交集、并集、差集、对称差集等运算。
交集(&)
交集操作符为 &
,它返回两个集合的交集。
fruits1 = {"apple", "banana", "orange", "peach"}
fruits2 = {"banana", "grape", "kiwi", "peach"}
common_fruits = fruits1 & fruits2
# 输出:{'banana', 'peach'}
print(common_fruits)
并集(|)
并集操作符为 |
,它返回两个集合的并集。
fruits1 = {"apple", "banana", "orange", "peach"}
fruits2 = {"banana", "grape", "kiwi", "peach"}
all_fruits = fruits1 | fruits2
# 输出:{'apple', 'banana', 'kiwi', 'orange', 'peach', 'grape'}
print(all_fruits)
差集(-)
差集操作符为 -
,它返回两个集合的差集。
fruits1 = {"apple", "banana", "orange", "peach"}
fruits2 = {"banana", "grape", "kiwi", "peach"}
unique_fruits = fruits1 - fruits2
# 输出:{'orange', 'apple'}
print(unique_fruits)
对称差集(^)
对称差集操作符为 ^
,它返回两个集合的对称差集。
fruits1 = {"apple", "banana", "orange", "peach"}
fruits2 = {"banana", "grape", "kiwi", "peach"}
symmetric_diff = fruits1 ^ fruits2
# 输出:{'kiwi', 'orange', 'grape', 'apple'}
print(symmetric_diff)
元素操作
可以使用 add()
方法向集合中添加元素,使用 update()
方法向集合中添加多个元素,使用 remove()
方法移除指定元素。
fruits = {"apple", "banana", "orange"}
# 添加单个元素
fruits.add("peach")
# 添加多个元素
fruits.update(["kiwi", "grape"])
# 输出:{'banana', 'grape', 'peach', 'kiwi', 'apple', 'orange'}
print(fruits)
# 移除指定元素
fruits.remove("kiwi")
# 输出:{'banana', 'grape', 'peach', 'apple', 'orange'}
print(fruits)
示例1
下面是一个示例,将两个列表中的元素去重、排序后合并为一个新列表。
list1 = [1, 3, 2, 1, 5, 6, 7]
list2 = [2, 4, 3, 4, 8]
# 利用集合去重并排序
set1 = set(list1)
set2 = set(list2)
new_set = set1 | set2
new_list = sorted(new_set)
# 输出:[1, 2, 3, 4, 5, 6, 7, 8]
print(new_list)
示例2
下面是一个示例,统计一个字符串中每个字符出现的次数。
str1 = "hello, world!"
char_count = {}
# 遍历字符串中每个字符,统计出现次数
for char in str1:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 将结果输出为集合
char_set = set(char_count.items())
print(char_set)
输出结果为:
{('h', 1), ('l', 3), ('d', 1), (' ', 1), ('w', 1), ('r', 1), ('e', 1), ('!', 1), ('o', 2), (',', 1)}
其中每个元素为一个元组,包含字符和出现次数两个信息。