小甲鱼Python3学习笔记之第二十七讲(仅记录学习)

第二十七讲:集合,在我的世界里,你就是唯一

一、知识点:

0.集合的创建:set1={1,2,3,4,5},集合中的重复元素会剔除。

1.集合是无序的,不支持索引。

2.可以利用工厂函数set()来创建一个集合:set1=set(字符串/列表/元组)

3.如何访问集合中的值:

for语句进行遍历;in/not in 判断是否在集合中;add()添加;remove()移除

4.不可变集合:用frozenset来创建,不可添加、不可删除已有元素。

----------------------------------------------------我是一条分割线------------------------------------------------------

二、课后作业:

0.请问集合的唯一作用是什么呢?

答:集合几乎所有的作用就是确保里面元素的唯一性。

 1.如果你希望创建的集合是不变的,应该怎么做?

答:使用frozenset()。

2.请问如何确定一个集合里面有多少个元素?

答:len(set)

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

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

答:会报错,因为集合是无序的。

4.请问set1={[1,2]}和set1=set([1,2])执行的结果一样吗?

答:不一样。set1=set([1,2])会生成一个集合,而set1={[1,2]}会报错。

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

答:得到集合{1},因为在python的哈希函数中相同的值计算会得到相同的地址,所以1和1.0是等值的。

6.请问如何给集合添加和删除元素?

答:使用add()给集合添加元素,使用remove()给集合删除元素。

----------------------------------------------------我是一条分割线------------------------------------------------------

三、动动手:

0.集合类型内建方法总结:

集合(s).方法名

等价符号

方法说明

s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员
  s < t 子集测试(严格意义上):s != t 而且 s 中所有的元素都是 t 的成员
s.issuperset(t) s >= t 超集测试(允许不严格意义上的超集):t 中所有的元素都是 s 的成员
  s > t 超集测试(严格意义上):s != t 而且 t 中所有的元素都是 s 的成员
s.union(t) s | t 合并操作:s "或" t 中的元素
s.intersection(t) s & t 交集操作:s "与" t 中的元素
s.difference s - t 差分操作:在 s 中存在,在 t 中不存在的元素
s.symmetric_difference(t) s ^ t 对称差分操作:s "或" t 中的元素,但不是 s 和 t 共有的元素
s.copy()   返回 s 的拷贝(浅复制)

以下方法仅适用于可变集合

   
s.update s |= t 将 t 中的元素添加到 s 中
s.intersection_update(t) s &= t 交集修改操作:s 中仅包括 s 和 t 中共有的成员
s.difference_update(t) s -= t 差修改操作:s 中包括仅属于 s 但不属于 t 的成员
s.symmetric_difference_update(t) s ^= t 对称差分修改操作:s 中包括仅属于 s 或仅属于 t 的成员
s.add(obj)   加操作:将 obj 添加到 s
s.remove(obj)   删除操作:将 obj 从 s 中删除,如果 s 中不存在 obj,将引发异常
s.discard(obj)   丢弃操作:将 obj 从 s 中删除,如果 s 中不存在 obj,也没事儿^_^
s.pop()   弹出操作:移除并返回 s 中的任意一个元素
s.clear()   清除操作:清除 s 中的所有元素

----------------------------------------------------我是一条分割线------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/huashu2017/article/details/81083838