PAP5.2-集合的创建与操作

在线练习 · 人工智能专业 2026级本科《Python人工智能程序设计》

说明

本练习在课堂内完成。请在本机使用 VS Code、Cursor 或 Devin Desktop 编写并运行,再将源代码与终端输出填入各题下方的文本框。

练习一:空集合与从序列创建

编写程序,区分空集合与空字典,并从列表、字符串创建集合。

要求

  • 将 empty_set 赋值为 set()。打印 empty_set,输出为 set()。打印 type(empty_set),输出为 <class 'set'>。
  • 打印 type({}),输出为 <class 'dict'>。{} 创建的是空字典。
  • 在程序中写入下面的列表,再使用 set(numbers) 去重。打印 sorted() 后的结果,输出为 [1, 2, 3, 4, 5]。
numbers = [1, 2, 3, 3, 4, 4, 5]
  • 使用 set("hello") 创建字母集合。打印 sorted() 后的结果,输出为 ['e', 'h', 'l', 'o']。

练习二:添加元素

编写程序,向水果集合添加一个元素和多个元素。已经存在的元素不会重复出现。

要求

  • 在程序中写入下面的集合。
fruits = {"apple", "banana"}
  • 使用 add("orange") 添加橙子,再使用 add("apple") 添加已经存在的苹果。
  • 使用 update(["grape", "kiwi", "apple"]) 一次添加葡萄、猕猴桃和苹果。
  • 打印 sorted(fruits),输出为 ['apple', 'banana', 'grape', 'kiwi', 'orange']。
  • 打印 len(fruits),输出为 5。

练习三:删除与成员检测

编写程序,删除指定水果,并检查某个水果是否仍在集合中。集合中没有的元素使用 discard() 删除时,程序不报错。

要求

  • 在程序中写入下面的集合。
fruits = {"apple", "banana", "orange", "grape"}
  • 使用 discard("kiwi") 删除猕猴桃。猕猴桃不在集合中。
  • 再使用 discard("apple") 删除苹果。
  • 打印 sorted(fruits),输出为 ['banana', 'grape', 'orange']。
  • 分别打印 "apple" in fruits 和 "grape" in fruits,两行输出依次为 False、True。
  • 打印 len(fruits),输出为 3。

练习四:并集、交集与差集

编写程序,对两个数字集合计算并集、交集和差集。

要求

  • 在程序中写入下面两个集合。
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
  • 打印 sorted(set1 | set2),输出为 [1, 2, 3, 4, 5, 6]。
  • 打印 sorted(set1 & set2),输出为 [3, 4]。
  • 打印 sorted(set1 - set2),输出为 [1, 2]。

练习五:两门课的选课名单

编写程序,根据数学课和英语课的选课名单,列出全部选课学生、两门都选的学生,以及只选数学课的学生。

要求

  • 在程序中写入下面两个集合。
students_math = {"张三", "李四", "王五"}
students_english = {"李四", "王五", "赵六", "孙七"}
  • 打印 sorted(students_math | students_english),输出为 ['孙七', '张三', '李四', '王五', '赵六']。
  • 打印 sorted(students_math & students_english),输出为 ['李四', '王五']。
  • 打印 sorted(students_math - students_english),输出为 ['张三']。