FIsh论坛《零基础入门学习Python》| 第027讲 课后测试题及答案

本文讲解了Python中集合的基本概念,如确定性、无序性和唯一性,并通过实例演示如何创建和操作不可变集合(frozenset)、元素计数、集合的无序性以及哈希原理。通过实战练习,学习者将掌握如何添加和删除集合元素。

FIsh论坛《零基础入门学习Python》| 第027讲:集合:在我的世界里,你就是唯一 | 课后测试题及答案

数学中的集合特性:确定性、无序性、唯一性。
0.请问集合的唯一作用是什么呢?
集合具有唯一性,可以确保集合中的元素是唯一的、互异的。

1.如果你希望创建的集合是不变的,应该怎么做?
frozenset()
frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

>>>a = frozenset(range(10))     # 生成一个新的不可变集合
>>> a
frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = frozenset('runoob') 
>>> b
frozenset(['b', 'r', 'u', 'o', 'n'])   # 创建不可变集合
>>>

2.请问如何确定一个集合里边有多少个元素?
可以利用len()

num_set1=set([1,2,3,4,5])
num_set2 = set({1,3,6,9})
length1 = len(num_set1)
length2 = len(num_set2)
print(length1)
print(length2)
print(num_set1)
print(num_set2)

3.请目测一下代码会打印什么内容?

1 num_set = set([1,2,3,4,5])
2 print(num_set[0])

会报错,因为集合是无序的。
4.请问set1 = {[1,2]}和set1 = ([1,2])执行的结果一样吗?
不一样,set1 = set([1, 2]) 会生成一个集合{1, 2},但set1 = {[1, 2]}却会报错。

从报错信息上我们看到“列表不是可哈希类型”,
集合与字典的存储方式一致,利用哈希函数计算,相同的元素得到的哈希值(存放地址)是相同的,所以在集合中所有相同的元素都会覆盖掉,因此有了集合的唯一性。

set1 = {[1, 2]}
set2 = set([1, 2])
输出结果:
  set1 = {[1, 2]}
TypeError: unhashable type: 'list'

5.打开你的IDLE,输入set1 ={1,1.0},你发现了什么?

set1 ={1,1.0}
print(set1)
输出结果:
{1}

在Python的哈希函数将相同的值的元素计算,得到的地址是相同的,所以1和1.0是等值的。
6.请问如何给集合添加和删除元素?
add()—添加元素;
remove—删除元素

num_set1=set([1,2,3,4,5])
num_set1.add(9)
print(num_set1)
num_set1.remove(3)
print(num_set1)

输出结果:
{1, 2, 3, 4, 5, 9}
{1, 2, 4, 5, 9}

动动手:

0.自学扩展:自己花点时间看下这个表格,《集合类型内建方法总结》
小甲鱼链接:https://fishc.com.cn/thread-45276-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值