学习笔记-小甲鱼Python3学习第二十七讲:集合:在我的世界里,你就是唯一

集合:

一组用{}花括号扩来的无序元素,如果这些元素在定义集合时有重复,重复的只保留一个,元素具有唯一性。

集合不支持index索引


创建集合:

一种是直接把一堆元素用{}花括号括起来

一种是使用set()工厂函数


去掉列表中重复的元素

num = [0,1,2,3,4,5,5,3,1]

学过的方法

num1 = []

for each in num:

if each not in num1:

num1.append(each)

>>> print(num1)

[0, 1, 2, 3, 4, 5]


使用set()函数

num1 = list(set(num))


访问集合中的元素

num2 = {0,1,2,3,4,5}

可以使用for把集合中的数据一个个读取出来

for each in num2:

print(each)

可以通过in和not in 判断一个元素是否在集合中

1 in num2

7 not in num2


添加元素add()方法

num2.add(6)

删除一个元素remove()方法

num2.remove(4)


不可变集合

frozenset()

num3 = frozenset([0,1,2,3,4,5])

>>> num3.add(6)

Traceback (most recent call last):

  File "<pyshell#71>", line 1, in <module>

    num3.add(6)

AttributeError: 'frozenset' object has no attribute 'add'

不能添加元素,也不能删除元素


------------------------分隔符,哈哈哈------------------------

课后作业:


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

确保集合中的元素具有唯一性


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

使用frozenset()函数


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

使用len()函数,len(setname)


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

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

>>> num_set[0]

报错,集合是无序的不支持索引


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

不一样,第一个会报错,第二个生成一个集合


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

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


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

添加元素add()方法

删除元素remove()方法


--------------------分割线,哈哈哈-----------------------

动动手:

0.自学扩展,集合类型内建方法总结:

image.png

猜你喜欢

转载自blog.51cto.com/wszzdanm/2170894