============ CH27 homework ============
0 请问集合的唯一作用是什么呢?
Answer: 提出重复的元素,保证唯一性
1 如果你希望创建的集合是不变的,应该怎么做?
Answer: 使用frozenset()
2 请问如何确定一个集合里面有多少个元素
Answer: len(list(set([var]))) or len(set([var]))
3 请目测以下代码会打印什么内容?
num_set = set([1,2,3,4,5])
num_set[0]
Answer: 会报错,集合不支持索引
4 请问set1 = {[1,2]}和set1 = set([1,2])执行的结果一样吗?
Answer: 不一样,前面是字典(准确说啥都不是,[1,2]是list会报错);后者是集合
Test:
>>> set1 = {[1,2]}
Traceback (most recent call last):
File "<pyshell#143>", line 1, in <module>
set1 = {[1,2]}
TypeError: unhashable type: 'list'
>>> set1 = set([1,2])
>>> set1
{1, 2}
小甲鱼知识扩展: 利用哈希函数计算,相同的元素得到的哈希值(存放地址)是相同的,所以在集合中所有相同的元素会被覆盖,因此才能保证集合的唯一性。
再来考虑无序也就能够理解了,因为哈希函数计算的地址不可能按顺序排放
5 打开你的IDLE, 输入set1={1,1.0}, 你发现了什么?
>>> set1 = {1,1.0}
>>> set1
{1.0}
Answer: 集合会合并相同的元素,保证唯一性。如果值相同而数据类型不相同,则向更宽的位宽数据类型合并
6 请问如何给集合添加和删除元素?
Answer: .add(), .remove()
{1, 2, 3, 4, 5, 6, 7}
>>> num2.add(8)
>>> num2
{1, 2, 3, 4, 5, 6, 7, 8}
>>> num2.remove(2)
>>> num2
{1, 3, 4, 5, 6, 7, 8}
Practice
0 自学扩展: 自己花时间看下下面这个表格,很重要