四. 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中,则删除;
原文地址:https://www.cnblogs.com/Sup-to/p/10840960.html