Python的集合函数及其实战演练
发布时间:2023-07-01 02:40:58
在Python中,集合(set)是一种无序、 元素的容器。集合是由一对大括号{}包裹起来的,元素之间用逗号分隔。
Python提供了很多集合函数,可以用于创建集合、添加、删除元素,以及集合之间的操作。下面是一些常用的集合函数及其实战演练。
1. 创建集合:可以使用set()函数或者直接使用大括号{}来创建一个集合。
# 使用set()函数创建集合
s1 = set()
s1.add(1)
s1.add(2)
s1.add(3)
print(s1) # 输出: {1, 2, 3}
# 使用大括号直接创建集合
s2 = {4, 5, 6}
print(s2) # 输出: {4, 5, 6}
2. 添加元素:可以使用add()函数向集合中添加一个元素,如果添加的元素已经存在于集合中,则不会有任何效果。
s = {1, 2, 3}
s.add(4)
s.add(3) # 添加已经存在的元素,不会有任何效果
print(s) # 输出: {1, 2, 3, 4}
3. 删除元素:可以使用remove()函数从集合中删除一个元素,如果删除的元素不存在,则会抛出KeyError异常。可以使用discard()函数删除一个元素,如果删除的元素不存在,则不会有任何效果。
s = {1, 2, 3}
s.remove(2)
s.discard(4) # 删除不存在的元素,不会有任何效果
print(s) # 输出: {1, 3}
4. 集合操作:可以使用集合操作符进行集合之间的交、并、差、对称差等操作。
s1 = {1, 2, 3}
s2 = {3, 4, 5}
# 交集
intersection = s1 & s2
print(intersection) # 输出: {3}
# 并集
union = s1 | s2
print(union) # 输出: {1, 2, 3, 4, 5}
# 差集
difference = s1 - s2
print(difference) # 输出: {1, 2}
# 对称差
symmetric_difference = s1 ^ s2
print(symmetric_difference) # 输出: {1, 2, 4, 5}
下面是一个实战演练的例子,假设有一个学生名单,我们需要进行一些集合操作。
students = {'Alice', 'Bob', 'Charlie', 'David'}
math_students = {'Alice', 'Bob', 'Eve'}
science_students = {'Charlie', 'David', 'Eve'}
# 打印两个科目都参加的学生
both_subjects = math_students & science_students
print(both_subjects) # 输出: {'Eve'}
# 打印只参加数学课的学生
only_math = math_students - science_students
print(only_math) # 输出: {'Alice', 'Bob'}
# 打印只参加科学课的学生
only_science = science_students - math_students
print(only_science) # 输出: {'Charlie', 'David'}
# 打印两个科目中的所有学生
all_students = math_students | science_students
print(all_students) # 输出: {'Charlie', 'Alice', 'David', 'Bob', 'Eve'}
通过使用这些集合函数和集合操作符,我们可以轻松地进行集合操作,从而方便地处理和分析数据。
