Python集合set()使用的方法详解
目录
1.集合的特点2.set的建立1.用set()函数创建set集合2.add()3.用{}创建set集合。空set集合用set()函数表示,不可a={}。4.set集合的转化3.常见使用注意事项4.set的常用方法4.1 set集合的增删改查操作4.2 其它用法5.列表,元组,字典,集合5.1 它们之间的类型转换5.2 集合和列表方法上的区别总结在python3中按数据类型的可变与不可变大致分为如下几种类型:
不可变数据(3个):Number
(数字)、String
(字符串)、Tuple
(元组);可变数据(3个):List
(列表)、Dictionary
(字典)、Set
(集合)。
1.集合的特点
1.无序不重复没有重复的元素,且元素无序存放(故集合没有下标和切片),set的只要作用就是用来给数据去重。
2.使用时为{ },与字典区分:当花括号里的元素不是键值对的时候为集合。
3.集合的底层其实是通过字典来封装的
2.set的建立
可以使用大括号 { }或者set()函数创建集合,但是注意如果创建一个空集合必须用 set()而不是 { },因为{}是用来表示空字典类型的。
1.用set()函数创建set集合
person2 = set(("hello","jerry",133,11,133,"jerru")) #只能传入一个参数,可以是list,tuple等 类型 print(len(person2)) print(person2) """ 5 {133, "jerry", 11, "jerru", "hello"} """
2.add()
a=set() a.add("a") a.add("b") print(a)
3.用{}创建set集合。空set集合用set()函数表示,不可a={}。
person ={"student","teacher","babe",123,321,123} #同样各种类型嵌套,可以赋值重复数据,但是存储会去重 print(len(person)) #存放了6个数据,长度显示是5,存储是自动去重 print(person) #但是显示出来则是去重的 """ 5 {321, "teacher", "student", "babe", 123} """ #空set集合用set()函数表示 person1 = set() #表示空set,不能用person1={} print(len(person1)) print(person1) """ 0 set() """
4.set集合的转化
a=["awe","weg","dawqgg"] c=set(a) print(c) b="chenshuagege" d=set(b) print(d) al=("233","34455") aw=set(al) print(al)
3.常见使用注意事项
#set对字符串也会去重,因为字符串属于序列。 str1 = set("abcdefgabcdefghi") str2 = set("abcdefgabcdefgh") print(str1,str2) print(str1 - str2) #-号可以求差集 print(str2 - str1) #空值 #print(str1 + str2) #set里不能使用+号 ==================================================================== {"d", "i", "e", "f", "a", "g", "b", "h", "c"} {"d", "e", "f", "a", "g", "b", "h", "c"} {"i"} set()
4.set的常用方法
4.1 set集合的增删改查操作
add 用于加入元素update 用于集合的合并remove 当移除一个集合里没有的元素时,报错discard 当移除一个集合里没有的元素时,不会报错del 仅可对集合本身使用,不可用于元素,因为元素在集合里为混乱排放,无下标clear 清空集合,留下空集合pop 随机删除集合里的一个元素#1.给set集合增加数据 person ={"student","teacher","babe",123,321,123} person.add("student") #如果元素已经存在,则不报错,也不会添加,不会将字符串拆分成多个元素,区别update print(person) person.add((1,23,"hello")) #可以添加元组,但不能是list print(person) """ {321, "babe", "teacher", "student", 123} {(1, 23, "hello"), 321, "babe", "teacher", "student", 123} """ # update用于集合的合并,可以把多个集合添加到一个集合里面。可以iterar的数据都可以添加成set集合 person.update("abc")#使用update不能添加字符串,会拆分 print(person) #会将字符串拆分成a,b,c三个元素 """ {321, 1, 3, "b", "c", "teacher", (1, 23, "hello"), "a", "babe", "student", 123} """ set1 = set() set1.add("武动乾坤") set2 = {"jsy", "稻香", "爱的代价", "大碗宽面"} set2.update(set1) print(set2) """ {"大碗宽面", "jsy", "爱的代价", "稻香", "武动乾坤"} """ #2.从set里删除数据 person.remove("student")#按元素去删除 print(person) #print("student")如果不存在 ,会报错。 """ {321, 1, 3, "c", "b", (1, 23, "hello"), "teacher", "babe", "a", 123} """ person.discard("student")#功能和remove一样,好处是没有的话,不会报错 ret = person.pop() #在list里默认删除最后一个,在set里随机删除一个。 print(person) print(ret) #pop()返回的是被删除掉的那一项 """ {1, 3, (1, 23, "hello"), "teacher", "b", "a", "babe", 123, "c"} """ #3.更新set中某个元素,因为是无序的,所以不能用角标 #所以一般更新都是使用remove,然后在add #4.查询是否存在,无法返回索引,使用in判断 if "teacher" in person: print("true") else: print("不存在") """ true """ #5.终极大招:直接清空set print(person) person.clear() print(person) """ set() """
4.2 其它用法
交 并 差集操作交集 intersection;并集 union;差集 difference
可用运算符表示交集,并集,差集交集 & 并集 | 差集 -
#取两者的交集 b={1,23} a={23,5} ret=b.intersection(a) print(ret) #取两者的交集,intersection_update会改变b的内容 b={1,23} a={23,5} b.intersection_update(a) print(b) #union是把两个set集合合起来 a={"a","b","c"} b={"a","wa"} wt=a.union(b) print(wt) #difference表示的意思是a中的内容b是没有的,但是这个不会修改a自身的值,而是付给ret了 a={"12","14","234"} b={"12","23"} ret=a.difference(b) print(ret) #difference_update表示的意思是a中的内容b是没有的,执行完,会修改a的内容 a={"12","14","234"} b={"12","23"} a.difference_update(b) print(a) #symmetric_difference为把两个set集合里相同的内容当作边然后取这边两边的内容 a={"a","b","c"} b={"a","wa"} ret=a.symmetric_difference(b) print(ret) a.symmetric_difference(b) print(a) #可用运算符表示交集,并集,差集 set2 = {1, 2, 3, 4, 5} set3 = {3, 4, 5, 6, 7, 8, 9} print(set2 & set3) # 交集符号 & print(set2 | set3) # 并集符号 | print(set2 - set3) # 差集符号 - b={1,23} a={23,5} #如果a与b有集合的话,就返回false;如果没有集合的话,就返回true ret=b.isdisjoint(a) print(ret) b={1,23,5} a={23,5} #issuperset说明b是否是a的父亲,如果是就输出true,如果不是输出false ret=b.issuperset(a) print(ret) b={1,23,5} a={23,5} #b是否是a的子,如果是就输出true,如果不是就输出false ret=b.issubset(a) print(ret)
5.列表,元组,字典,集合
list
: 允许重复,有序,有下标,可切片tuple
: 允许重复,里面元素不能进行增删改,只能查看dict
: 字典里的元素以键值对的形式存在 键:唯一性 值:可以重复set
: 元素不允许重复,且具有无序性
5.1 它们之间的类型转换
1.列表,元组,集合,此三者均可相互转
list----->tuple,set 列表转集合时,注意不能有重复元素,否则长度改变
tuple----->list,set
set----->list,tuple
2.当字典参与的转换时,需特殊对待
dict----->list,tuple 仅能将字典的键转换,不能将值转换
list----->dict 列表内必须是列表或是元组,且其中只有两个元素时,可转
list = [["a", {1}], ("", 2), ("c", 3)] print(dict(list))
输出:
{‘a’: {1}, ‘’: 2, ‘c’: 3}
5.2 集合和列表方法上的区别
正是由于集合的无序性,没有下标,故在方法上与列表有些差异。
append(添加元素) extend(实现列表的拼接)insert(在某一下标插入元素) ----->listadd(添加元素) update(两个集合的合并) ---->set总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?