一. 集合
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中,则删除;