持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
0 环境
- 编辑器:idea或vscode
- 系统版本:windows10
- python版本:3.9.6
1 集合定义和赋初值
- 有点像上学时,数学里的集合
- 目的:没有重复元素
看到set(range(4))是不是很眼熟,说明set是能对可迭代对象进行转化的。
def set_demo():
set_item = set()
print("set_item ==>", set_item)
print("set_item ==>", type(set_item))
set_item = set(range(4))
print("set_item ==>", set_item)
print("set_item ==>", type(set_item))
2 新增
当我们新增多个相同的元素时,set集合只会新增一次,之后的重复元素,并不会继续追加,自动过滤重复元素。
def set_demo():
set_item = set(range(4))
set_item.add(1)
set_item.add(1)
set_item.add(11)
print("set_item ==>", set_item)
3 更新
update方法 --> 别人和自己合并在一起时,元素的去重。如下代码:看上去和list类似,集合只改变自身,没有返回值。和上面的新增元素一样,对于已存在的,啥也不做,只新增原先集合里没有的元素。
def set_demo():
set_item = set(range(4))
set_item.update(range(3,6))
print("set_item ==>", set_item)
从某种层度是不是就是新增的升级版。是不是有点类似如下代码。
for 元素 in 迭代:
集合.add(元素)
4 删除
删除(集合.remove(元素))的定义:一、首先我们入参一个删除元素,当该删除元素在集合中存在,执行删除操作。二、假如在集合中没有该删除元素的情况下,python会怎么处理,注意:删除元素在集合中不存在,就会抛出异常。
当第一次调用remove,待删除元素,在集合里元素存在时,成功执行。当第二次在删除时,元素不存在,直接报异常。
def set_remove_demo():
set_item = set(range(4))
set_item.remove(1)
print("set_item ==>", set_item)
set_item.remove(1)
print("set_item ==>", set_item)
5 小结
我们知道了集合的定义以及初始化,和之前所学的类似,集合的新增,不重复添加重复的值或者说是元素,它针对的单个元素。而更新,针对的是多个元素和集合的合并,你可以想像一下,循环多个元素,相当于每次集合.add(元素),一直到循环结束。删除有两个点,当待删除元素在集合中是存在的,正常执行删除操作,当它不存在时,会抛出异常,若是你平时会用到删除操作,最好加个判断或异常处理这类的。