Python实现集合典型应用

liftword1个月前 (03-28)技术文章5


任务要求

1.初始化与基本操作:创建一个包含多个元素的集合,并展示其初始化过程。

2.集合运算:实现两个集合的交集、并集、差集和对称差集运算。

3.去重:通过集合实现列表去重。

4.统计与遍历:统计集合的长度,并遍历集合中的所有元素。

5.实际应用:通过集合实现一个简单的数据处理任务(如统计学生选课情况)。

任务分析

集合是Python中一种高效的数据结构,其核心特点包括元素唯一性、无序性和支持快速的成员测试。

任务实现

1集合的初始化与基本操作

# 初始化一个包含重复元素的列表,并将其转换为集合
fruits = ["apple", "banana", "apple", "orange", "banana"]
unique_fruits =
set(fruits)
print("集合初始化结果:", unique_fruits)
# 添加单个元素
unique_fruits.add("grape")
print("添加葡萄后:", unique_fruits)
# 添加多个元素
unique_fruits.update(["mango", "kiwi"])
print("添加芒果和猕猴桃后:", unique_fruits)
# 删除元素
unique_fruits.remove("apple") # 删除指定元素
print("删除苹果后:", unique_fruits)

运行结果:

集合初始化结果: {'orange', 'apple', 'banana'}

添加葡萄后: {'orange', 'apple', 'grape', 'banana'}

添加芒果和猕猴桃后: {'grape', 'apple', 'orange', 'mango', 'kiwi', 'banana'}

删除苹果后: {'grape', 'orange', 'mango', 'kiwi', 'banana'}

进程已结束,退出代码为 0

说明:

  • 使用set()函数将列表转换为集合,自动去除重复元素。
  • add()方法用于添加单个元素,update()方法用于添加多个元素。
  • remove()方法用于删除指定元素。

2集合运算

# 创建两个集合
set_a = {1, 2, 3, 4}
set_b = {
3, 4, 5, 6}
# 交集:同时属于 set_a 和 set_b 的元素
intersection = set_a & set_b
print("交集结果:", intersection)
# 并集:属于 set_a 或 set_b 的所有元素
union = set_a | set_b
print("并集结果:", union)
# 差集:属于 set_a 但不属于 set_b 的元素
difference = set_a - set_b
print("差集结果:", difference)
# 对称差集:属于 set_a 或 set_b 但不同时属于两者
symmetric_difference = set_a ^ set_b
print("对称差集结果:", symmetric_difference)

运行结果:

交集结果: {3, 4}

并集结果: {1, 2, 3, 4, 5, 6}

差集结果: {1, 2}

对称差集结果: {1, 2, 5, 6}

进程已结束,退出代码为 0

说明:

集合支持多种数学运算:

  • &表示交集。
  • |表示并集。
  • -表示差集。
  • ^表示对称差集。

这些运算符提供了简洁高效的方式来处理集合关系。

3集合去重

# 创建一个包含重复元素的列表
numbers = [1, 2, 2, 3, 4, 4, 5, 5]
# 使用集合去重并转换回列表
unique_numbers = list(set(numbers))
print("去重后的结果:", unique_numbers)

运行结果:

去重后的结果: [1, 2, 3, 4, 5]

进程已结束,退出代码为 0

说明:

  • 将列表转换为集合可以快速去除重复元素。
  • 如果需要保留顺序,可以使用dict.fromkeys()方法

4统计与遍历

# 初始化一个包含重复元素的列表,并将其转换为集合
fruits = ["apple", "banana", "apple", "orange", "banana"]
unique_fruits =
set(fruits)
print("集合初始化结果:", unique_fruits)
# 统计集合的长度
print("\n集合长度:", len(unique_fruits))
# 遍历集合中的所有元素
print("\n遍历结果:")
for fruit in unique_fruits:
print(fruit)

运行结果:

集合初始化结果: {'banana', 'apple', 'orange'}

集合长度: 3

遍历结果:

banana

apple

orange

进程已结束,退出代码为 0

说明:

  • len()函数用于统计集合的长度。
  • 使用for循环遍历集合中的所有元素。

5实际应用:统计学生选课情况

# 学生选课记录(模拟数据)
student_courses = [
{
"id": 1, "courses": ["Math", "English", "Physics"]},
{
"id": 2, "courses": ["Math", "Chemistry"]},
{
"id": 3, "courses": ["English", "Biology"]},
{
"id": 4, "courses": ["Math", "English"]}
]
# 统计所有课程的出现次数
course_count = {}
for student in student_courses:
for course in student["courses"]:
if course in course_count:
course_count[course] +=
1
else:
course_count[course] =
1
# 找出选修人数最多的课程
most_popular_course = max(course_count, key=course_count.get)
print("选修人数最多的课程:", most_popular_course)
print("课程选修人数统计:", course_count)

运行结果:

选修人数最多的课程: Math

课程选修人数统计: {'Math': 3, 'English': 3, 'Physics': 1, 'Chemistry': 1, 'Biology': 1}

进程已结束,退出代码为 0

说明:

  • 使用字典course_count统计每门课程的选修次数。
  • 使用max()函数结合key参数找出选修人数最多的课程。
  • 这个案例展示了集合在数据统计和处理中的灵活性。

相关文章

Python 中的集合

集合是 Python 中的一种内置数据结构,表示唯一项的无序集合。集合对于涉及成员资格测试、消除重复条目以及执行数学集运算(如 union、intersection 和 difference)的操作特...

Python快速入门教程5:集合

一、集合简介集合(set)是Python中的一种无序且不重复元素的容器类型。它基于哈希表实现,因此查找和插入操作的时间复杂度接近于O(1)。集合非常适合用于成员测试、去重等场景。创建集合使用花括号{}...

简析python中的集合

一、集合1、集合:set,把不同元素组成一起形成集合,是pthon基本的数据类型,是无序且不重复,特点是数据元素唯一、无序且不可变set(可变)frozenset(不可变)元组和字符串也不可变>...

Python小案例47-集合的操作和方法

Python中的集合是一种无序且不重复的数据结构。它们是可变的,可以添加、删除和修改元素。下面是一些常用的集合操作和方法:创建集合:使用花括号{}来创建一个空集合:my_set = {}使用set()...

第27讲 集合(和猫妹学Python)

小朋友们好,大朋友们好!我们今天学习集合(set)的知识,内容如下:什么是集合(set)集合的创建集合的添加和删除集合的交集、并集、差集什么是集合Python中的集合和数学中的集合概念类似,也是用于保...

一文带您精通Python 集合(Set):8个不可不知的技巧及示例

在 Python 中,集合(Set)与列表(List)、字典(Dict)、元组(Tuple)一起构成了基本的数据结构。集合以其独特的无序性和元素唯一性,在处理数据时具有独特的优势。然而,很多人对集合的...