欢迎访问宙启技术站
智能推送

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'}

通过使用这些集合函数和集合操作符,我们可以轻松地进行集合操作,从而方便地处理和分析数据。