集合(set):表现形式{数据, 数据, 数据},集合(set)是一种无序的、不重复元素的可变容器数据类型,可以使用这个特点对列表中的数据进行去重处理(处理方法:先把列表转换为集合类型,再把集合转换为列表类型)
一、集合的定义
1.使用花括号{}直接定义:
例如:my_set = {1, 2, 3},这里定义了一个包含元素 1、2、3 的集合。
注意:使用这种方式定义集合时,不能直接定义空集合,因为{}会被解释为一个空字典。
2.使用set()函数定义:
定义空集合:empty_set = set()
将列表传入set()创建集合:my_set = set([1, 2, 3])
二、集合的增删改查
1、增加元素
a.使用 add() 方法添加单个元素:
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # {1, 2, 3, 4}
b.使用update()方法添加多个元素
my_set = {1, 2, 3}
my_set.update([4, 5])
print(my_set) # {1, 2, 3, 4, 5}
2、删除元素
a.使用 remove()
方法删除指定元素,如果元素不存在会抛出 KeyError
:
my_set = {1, 2, 3}
my_set.remove(2)
print(my_set) # {1, 3}
b.使用 discard()
方法删除指定元素,如果元素不存在不会抛出错误:
my_set = {1, 2, 3}
my_set.discard(4)
print(my_set) # {1, 2, 3}
c.使用pop()方法随机删除并返回一个元素,如果集合为空则抛出KeyError:
my_set = {1, 2, 3}
popped_element = my_set.pop()
print(popped_element) # 随机删除一个元素
print(my_set) # 集合少了一个元素
3、修改元素(集合的元素具有不可变性,不能直接修改,只能先删除再添加)
my_set = {1, 2, 3}
my_set.remove(2)
my_set.add(22)
print(my_set) # {1, 3, 22}
4、查询元素
使用 in
关键字判断元素是否在集合中:
my_set = {1, 2, 3}
print(2 in my_set) # True
print(4 in my_set) # False
三、对列表去重
1.列表去重方式一,利用集合自动去重(但是会自动排序,改变了原列表的顺序)
my_list = [1, 4, 4, 2, 3, 9, 6, 7, 6]
print(my_list, type(my_list)) # [1, 4, 4, 2, 3, 9, 6, 7, 6] <class 'list'>
my_set = set(my_list)
print(my_set, type(my_set)) # {1, 2, 3, 4, 6, 7, 9} <class 'set'>
2.列表去重方式二,新建一个新的空列表,遍历旧列表数据,判断数据是否存在新列表中,如果不存在就将数据插 入新列表,存在则不插入
my_list = [1, 4, 4, 2, 3, 9, 6, 7, 6]
my_list2 = []
for i in my_list:
if i not in my_list2:
my_list2.append(i)
print(my_list2) # [1, 4, 2, 3, 9, 6, 7]