python之set集合,基础篇
2021/7/8 14:07:15
本文主要是介绍python之set集合,基础篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
集合:set
特点: 1>、无序 ,所有不可用下标值查询,也不可切片 2>、去重 3>、可添加,可删除,不可修改 1,定义一个空集合
name_set = set()
需要注意的是:
name_str = "" --定义空字符串 name_list = [] --定义空列
name_list = list() --定义空列表
name_tuple = () --定义空元组
name_tuple = tuple()--定义空元组
name_set = set() --定义空集合 name_dict = {} --定义空字典 name_dict = dict() --定义空字典
2,定义一个非空集合
name_set = {'a', 'b', 'c'} print(name_set)
注意的是,如果定义的时候有两个相同的元素,因为集合是去重的,所以....,你懂的!
name_set = {'a', 'b','b', 'c'} print(name_set)
print(type(name_set))
3,数据类型转换,把列表转换为集合--(自动去重)
name_list = ['a', 'c', 'b', 'a'] name_set = set(name_list) # 强制转换 print(name_set)
4,集合运算
集合之间也可进行数学集合运算(例如:并集、交集,差集,对称差集等),可用相应的操作符或方法来实现。
1>交集
两个集合 A 和 B 的交集是含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合。
intersection() 或者 &
name1_list = ["a", "b", "c"] name2_list = ["a", "c", "m"] name1_set = set(name1_list) name2_set = set(name2_list) print(name1_set.intersection(name2_set)) print(name1_set & name2_set)
2>,并集
一组集合的并集是这些集合的所有元素构成的集合,
union() 或者 |
name1_list = ["a", "b", "c"] name2_list = ["a", "c", "m"] name1_set = set(name1_list) name2_set = set(name2_list) print(name1_set.union(name2_set)) print(name1_set | name2_set)
3>,差集
A 与 B 的差集是所有属于 A 且不属于 B 的元素构成的集合
difference() 或者 -
name1_list = ["a", "b", "c"] name2_list = ["a", "c", "m"] name1_set = set(name1_list) name2_set = set(name2_list) print(name2_set.difference(name1_set)) print(name2_set - name1_set)
4>,对称差集
集合A与集合B中只有集合A或集合B有的元素的集合
symmetric_difference() 或者 ^
name1_list = ["a", "b", "c"] name2_list = ["a", "c", "m"] name1_set = set(name1_list) name2_set = set(name2_list) print(name1_set.symmetric_difference(name2_set)) print(name1_set ^ name2_set)
5>,是否是子集
子集,为某个集合中一部分的集合,故亦称部分集合,即集合A中所有的元素都是集合B中的元素,则集合A是集合B的子集。 issubset() <= 是返回True,不是返回False
name1_list = ["a", "b", "c"] name2_list = ["a", "c"] name1_set = set(name1_list) name2_set = set(name2_list) print(name2_set.issubset(name1_set)) print(name2_set <= name1_set) print(name1_set<=name2_set)
6>,是否是父集
即集合A中所有的元素都是集合B中的元素,则集合B是集合A的子集。
issuperset() >= 是父集返回True,不是则返回False
name1_list = ["a", "b", "c"] name2_list = ["a", "c"] name1_set = set(name1_list) name2_set = set(name2_list) print(name1_set.issuperset(name2_set)) print(name1_set >= name2_set)
7>,是否有交集,
判断两个集合是否无交集:无交集返回True,有交集返回False
isdisjoint()
name1_list = ["a", "b", "c"] name2_list = ["a", "c"] name1_set = set(name1_list) name2_set = set(name2_list) print(name1_set.isdisjoint(name2_set))
5,集合的方法
name_set = set() print(dir(name_set))
1>,add(),
新增1个元素
name_{'a', 'b'} name_set.add("c") print(name_set)
2>,clear()
清除set集合中所有元素
name_set = {'a', 'b'} name_set.clear() print(name_set)
3>,discard()
删除集合中某个元素,元素存在则删除,不存在则不报错
name_list = ['a', 'b', 'c'] name_set = set(name_list) name_set.discard("b") # 删除存在的元素 print(name_set)
4>,pop()
删除随机一个元素.
name_list = ['a', 'b', 'c'] name_set = set(name_list) name_set.pop() print(name_set)
5>,remove()
删除某个元素,如果元素存在则删除,不存在则报错
name_list = ['a', 'b', 'c'] name_set = set(name_list) name_set.remove("b") #存在的元素 print(name_set)
6>,update()
添加多个元素
name_list = ['a', 'b', 'c'] name_set = set(name_list) name_set.update({"m", "n", "b"}) # 列表、元组、集合、字符串 name_set.update(['mnb']) print(name_set)
6,类型转化 列表 或者 元组转化为 集合
name_tuple = ("a", "b", 'c') name_set = set(name_tuple)
name_list = ['a', 'b', 'c'] name_set = set(name_list)
name_list = list(name_set) # 集合转换为列表 print(name_list)
7,因为集合是去重的,所有对集合做多的用法就是去重 Mysql中去重的方法有distinct,group by (分组) python中关于去重的方式就是转化成集合,然后在转化回去。 注意的是,如果字符串想转化为集合,需要先转化成列表,然后再转化成集合。
这篇关于python之set集合,基础篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程