说明
本练习在课堂内完成。请在本机使用 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),输出为['张三']。