四. python集合
一. 集合
set() 类似字典(dict) 是一组key 集合 不存储
本质: 无序 和 无重复的元素的集合
集合:无序,即无序存索引相关信息
set是没有索引的
创建:
创建set 需要 一个列表(list)或者元组(tuple)或者字典(dict)作为输入的集合
1. 重复元素可以在set中自动过滤
# 重复元素可以在set中自动过滤 s2=set([1,2,3,4,1,2,3]) print(s2) #{1, 2, 3, 4} s3=set((10,22,33,4,10,22,33)) print(s3) #{33, 10, 4, 22}
2.set() 类似字典(dict) 是一组key 集合 不存储
# set() 类似字典(dict) 是一组key 集合 不存储 s4=set({"name":"小明","age":25,"study":"python"}) print(s4) #{'study', 'age', 'name'}
3.添加 add()
# set添加 add s5=set([1,2,3]) s5.add(1000)
print(s5) #{1000, 1, 2, 3} s5.add(3) #可以添加重复的元素 但是不会有效果 # s5.add([7,8,9]) # set 的元素不能是列表 因为列表是可变的 s5.add((7,9,6)) print(s5) # {1000, 1, 2, 3, (7, 9, 6)} 因为元组不可变所有能添加进去 s5.add({"name":"张三"}) print(s5) #set的元素不能是字典 因为字典是可变的
4.更新update()
# 添加更新update # update 插入添加整个 list tuple 字符串打乱了 s6=set([1,2,3]) s6.update([6,7,9]) print(s6) #{1, 2, 3, 6, 7, 9} 字符串打碎查入了 s7=set([1,2,3]) s7.update((45,46,47)) print(s7) #1, 2, 3, 45, 46, 47} s8=set([1,2,3]) s8.update(("name")) print(s8) #{1, 2, 3, 'a', 'e', 'n', 'm'}
5.删除remove()
s9=set([1,2,3]) s9.remove(2) print(s9) #{1, 3}
6.遍历
# 循环遍历 s10=set([1,2,3,4,5,6]) for i in s10: print(i) #1 2 3 4 5 6 s11=set("name") for i in s11: print(i) #n a m e
7.set里面有交集和并集
# 交集 & str12=set([1,2,3,4,5]) str13=set([11,2,3,44,55]) a1=str12&str13 print(a1) #{2, 3} print(type(a1)) #<class 'set'>
# 并集 | str12=set([1,2,3,4,5]) str13=set([10,2,3,6]) a2=str12|str13 print(a2) #{1, 2, 3, 4, 5, 6, 10} print(type(a2)) #<class 'set'>
# 集合 # python 集合(set) # 01 isdisjoint #判断是否是相交集,返回bool值 s1={1,2} s2={3,9,5} aa=s1.isdisjoint(s2) print(aa) True # 0.2 issubset #判断是否是其子集 s2={1,2} s3={1,2,5} bb=s2.issubset(s3) # s2是s3 的子集 print(bb) # True 集合:集合是具有某种特定性质的事物的总体; 引入时间:python 2.3 以后版本, 位于Stes模块; set(tuple) #创建序列 集合的特点:交集和并集 a=set(range(10)) b=set(range(20)) c=a|b print c set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]) d=a&b print d set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 函数: 1.issubset #判断是否是其子集 a.issubset(b) # 返回bool值 2.add #集合中增加元素 a=set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) a.add(11) print a set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11]) 3.clear #删除集合中所有元素 4.copy #复制集合中的元素 5.difference #判断集合之间的差异返回新的集合 a=set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) b=set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]) b.difference(a) #判断b与a之间的差异 set([10, 11, 12, 13, 14, 15, 16, 17, 18, 19]) 6.remove #删除序列中指定的元素 7.isdisjoint #判断是否是相交集,返回bool值 8.issuperset #判断是否是超级,返回bool值 b.issuperset(a) #判断b是否是a的超集 超集定义:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集。 S1是S2的超集,则S2是S1的真子集,反之亦然 9.union #连接两个集合,形成新的集合 a.union(d) 10.update #更新集合 a.update(b) #将b集合更新到a集合中 11.pop #删除集合中的任意一个元素 a.pop() 12.discard #删除集合中存在的指定元素 a.discard(2) #元素2如果存在集合a中,则删除;