python10——组合数据类型(集合)
1、集合set
不允许有重复元素,如果添加重复元素,则会自动过滤,可以进行交集、并集的运算。是一种无序的数据结构。与dict类似,是一组key的集合(不存储value)。
创建
#举例
s=set()
print(s,type(s))
s1={1,2,3,4}
print(s1,type(s1))
s2={1,2,2,3,4} #有重复元素,不会报错,会自动过滤
print(s2)#结果:
set() <class 'set'>
{1, 2, 3, 4} <class 'set'>
{1, 2, 3, 4}
类型转换
#list-->set
s3=set([1,2,3,3]) #会自动过滤重复值
print(s3)
#tuple-->set
s4=set((1,2,3,4))
print(s4)
#str-->set
s5=set('123')
print(s5) #set是无序的,每次运行结果都不同,每个元素都是字符串
#dict-->set
s6=set({1:'A','a':2})
print(s6) #只打印key#结果:
{1, 2, 3}
{1, 2, 3, 4}
{'3', '1', '2'}
{1, 'a'}
其他操作
in
print(1 in s1)#结果:True
len
print(len(s1))#结果:4
max,min
print(max(s1),min(s1),sep=' ')#结果:4 1
del
del s1
print(s1) #name 's1' is not defined.
索引
print(s1[1]) #'set' object is not subscriptable,不支持索引
集合的遍历
for i in s1:print(i,end=' ')#结果:1 2 3 4
常用方法
#remove
s1.remove(1)
print(s1)
#update 需要写大括号
s1.update({2,5})
print(s1)
#add 不用加大括号
s1.add(7)
print(s1)#结果:
{2, 3, 4}
{2, 3, 4, 5}
{2, 3, 4, 5, 7}
交集、并集
#交集
s9={2,3,5,9,0}
print(s9 & s1)
#并集
print(s9 | s1)#结果:
{2, 3, 5}
{0, 2, 3, 4, 5, 7, 9}
列表去重
#得分列表
score=[3,5,2,7,7,3]
s=set(score)
print(s)
#统计每个分数的学生数
d={}
for i in s:t=score.count(i)print("得分为%d的人数为%d\n"%(i,t),end='')d[i]=t #存在字典里
print(d)
for k,v in d.items(): #字典遍历print("得分为%d的人数为%d\n" % (k, v), end='')#结果:
{2, 3, 5, 7}
得分为2的人数为1
得分为3的人数为2
得分为5的人数为1
得分为7的人数为2
{2: 1, 3: 2, 5: 1, 7: 2}
得分为2的人数为1
得分为3的人数为2
得分为5的人数为1
得分为7的人数为2