Python 集合(set)及其操作

'''
myset={1,2,3,4,5,6}   #数据不会重复,没下标,没次序
myset.add(8) #插入数据
myset.add(1) #去重
print(myset)

myset=set("abcdefg")
myset.update("abcdxyz")#update把不重复的字符添加到set中
print(myset)

'''

myset={1,2,3,4,5,6}
myset.update([1,2,8,9]) #单个整数不可以,list,tuple,字符串可以用update
print(myset)


###### 删除元素
myset.remove(5)    #删除元素,和discard相同,只是删除不存在的元素会出错
myset.discard(14)  #删除元素,
myset.pop()        #删除第一个元素
myset.clear()      #清空set
del myset          #完全删除



myset.copy()    #深复制(改变新的set,并不会改变原来的set)。变量赋值是浅复制,改变一个会同时改变另一个set


######## 遍历set
myset={1,2,3,4,5,6}
for i  in myset: #遍历集合,副本(i)修改并不会修改原来的set
    print(i)

#print(myset[0])#set没有索引
for  idx,iddata in enumerate(myset): #enumerate生成索引
    print(idx,iddata)   #idx下标,iddata元素


####### set无法修改,修改可以先转换成List


#######  
set1.difference(set2)  #差集,和set1-set2相同


####### set运算符
set1={1,2,3,4,5}
set2={1,2,7,8,9}
set3={1,2,3,4,5}
set4={1,2,3,4,5,6}
'''
print( 1  in  set3) #仅仅用于单个元素,不用于集合之间关系
print( 10  not  in  set3)
print(set1-set2) #set1有,set2没有
print(set2-set1) #set2有,set1没有
print(set1 & set2) #set1,set2共有
print(set1 | set2) #包含set1,set2,没有重复
print(set1 ^ set2)#并集-交集-,特色文化遗产
print(set1 == set3)  #==,!=相等
'''

####### 关系运算符
myset1={1,2,3,4}
myset2={1,2,3,4,5}
myset3={1,10,11,12,13,16,18}
print(myset1>myset2)
print(myset1<myset2)
print(myset3>=myset2)
print(myset3<=myset2)
#print(5>=5)
#print(myset2>myset1) #   myset2>myset1,myset2包含myset1所有元素
#print(myset1<myset2) #myset1是否被myset2包含
#  myset2==  myset1  myset2!=  myset1 判断是否完全相等
#myset1 <myset2  myset1是否被myset2包含     myset1<=myset2      myset1是否被myset2包含 或者相等
#myset1>myset2  myset1>=myset2 myset1是否包含 myset2myset1  是否被myset2包含 或者相等


######### 子集与父集
myset1={1,2,3,4}
myset2={1,2,3,4,5}
print(len(myset1))#求长度
print(myset1.issuperset(myset2)) #(父集)myset1是否包含myset2
print(myset1.issubset(myset2))   #(子集)myset1是否被myset2包含
print(myset2.issuperset(myset1)) 
print(myset2.issubset(myset1))


######### 不可变set,不可以修改增加删除
fz=frozenset([1,2,3,4,5])
print(fz)
print(type(fz))


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值