python学习笔记day7:集合以及集合操作

本文深入讲解了Python中集合的基本概念,包括其无序性和不重复性的特点,详细介绍了集合的各种操作,如增添、删除、查找、求交集、并集、反交集、差集、超集和子集,以及如何利用集合的去重复性进行数据清洗。

集合:是一种可变的数据类型,但是集合里面包含的元素必须是不可变的数据类型,同时集合具有两个鲜明特征:无序性和不重复性。
无序性:集合中的元素都是无序存储的,每次打印或者输出的顺序都是不一样的,因此集合中添加也是无序添。
不重复性:集合会自动判断元素中是否有相同元素,如果存在相同元素,就会自动合并相同的元素为一个
集合的符号: { } ,集合的符号与字典的表示符号相同,但是字典历史存在key和value的而集合中不存在这些,因此系统也是根据内部元素来判断是集合还是字典。
集合的操作:
1.增添:由于集合是无序的所以添加元素也是无序添加
add():类似列表中的append,将整个元素整体添加到集合中
update():列斯列表中的extend,迭代添加,将元素迭代添加到集合中

set2 = {'jerry', 'tony', '陕西', '廖欣', '廖欣'}
set2.add('神')
print(set2)
set2.update('abc')
print(set2)

2.删除:
pop():随机删除集合中的一个元素
remove():根据元素名来删除
clear():清空集合内尔所有元素,使集合变为空集
del: 删除整个集合包括集合名

set2 = {'jerry', 'tony', '陕西', '廖欣', '廖欣'}
print(set2.pop())             # 任意删除,有返回值返回被删除对象
print(set2)
set2 = {'jerry', 'tony', '陕西', '廖欣'}
set2.remove('陕西')           # 按元素删除
print(set2)
set2.clear()                 # 清空集合
print(set2)
del set2                     # 删除整个集合,删除之后相当于集合不存在,输出会报错

3.查找:由于集合无序所以只能利用for循环查找,且每次查找的顺序都不一样

set2 = {'jerry', 'tony', '陕西', '廖欣', '廖欣'}
for i in set2:
    print(i)

4.求交集:求出两个集合的交集
符号法:&
函数法:intersection()

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 8, 'jerry'}
set3 = set1 & set2
print(set3)
set4 = set1.intersection(set2)
print(set4)

5.求并集:求两个集合并集
符号法:|
函数法:union()

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 8, 'jerry'}
set3 = set1 | set2
print(set3)
set4 = set1.union(set2)
print(set4)

6.反交集:只存在于set1不存在与set2与只存在于set2不存在于set1的元素的集合
符号法:^
函数法:symmetric_difference()

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 8, 'jerry'}
set3 = set1 ^ set2
print(set3)
set4 = set1.symmetric_difference(set2)
print(set4)

7.差集:在set1中但不存在于set2中的元素的集合
符号法:-
函数法:difference()

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 8, 'jerry'}
set3 = set1 - set2
print(set3)
set4 = set1.difference(set2)
print(set4)

8.超集,子集

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5, }
print(set1 < set2)
print(set1.issubset(set2))   # set1是set2的子集

print(set2 > set1)
print(set2.issuperset(set1))   # set2是set1的超集

9.去重复的应用:可以利用集合的去重复性将列表list转化为集合set型,利用其特性删除重复的元素,达到去重的应用

li1 = [1, 2, 3, 3, 4, 7, 5, 5, 'jerry', 'jerry']
set1 = set(li1)
li1 = list(set1)
print(li1)

10.set是可变数据类型,但是可以转换为不可变数据类型,变的只可以查
将set类型转变为frozenset型。

s = frozenset('jerry')
print(s, type(s))

11 集合
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值