集合set
集合用于包含一組無序的對(duì)象。與列表和元組不同,集合是無序的,也無法通過數(shù)字進(jìn)行索引。此外,集合中的元素不能重復(fù)。set和dict一樣,只是沒有value,相當(dāng)于dict的key集合,由于dict的key是不重復(fù)的,且key是不可變對(duì)象因此set也有如下特性:
不重復(fù),(互異性),也就是說集合是天生去重的
元素為不可變對(duì)象,(確定性,元素必須可hash)
集合的元素沒有先后之分,(無序性)
1、定義集合
#第一種方法
nums=[1,2,3,4,5,6,7]
num_set=set(nums)
print(num_set)
結(jié)果:
{1,2,3,4,5,6,7}
#第二種方法
num_set={1,2,3,4,5,6,7}
2、增(更新)
set.add()
set.update([])
nums={1,2,3,4,5,6,7}
#set.add()增加只能增加一個(gè),不能增加多個(gè)值
#nums.add(8)
#print(nums)
#set.update()可以增加一個(gè)字符串,可以增加多個(gè)值
#nums.update([8])
#print(nums)
#nums.update('8')
#print(nums)
nums.update([8,9,10])
print(nums)
3、刪
set1.remove(1)
nums={1,2,3,4,5,6,7}
nums.remove(7)
print(nums)
結(jié)果:
{1,2,3,4,5,6}
4、查:無法通過下標(biāo)索引
5、改:不可變類型無法修改元素
6、交(&)
nums1={1,2,3,4,5,6}
nums2={1,2,3,4,5,10,7,8,9}
#交的方式一:&
a=nums1&nums2
print(a)
#并的方式二:intersaction
b=nums1.intersection(nums2)
print(b)
結(jié)果:
{1,2,3,4,5}
{1,2,3,4,5}
7、并(|)
nums1={1,2,3,4,5,6}
nums2={1,2,3,4,5,10,7,8,9}
#并的方式一:|
a=nums1|nums2
print(a)
b=nums1.union(nums2)
print(b)
結(jié)果:
{1,2,3,4,5,6,7,8,9,10}
{1,2,3,4,5,6,7,8,9,10}
8、差(-)
nums1={1,2,3,4,5,6}
nums2={1,2,3,4,5,10,7,8,9}
#差的方式一:-
a1=nums1-nums2
print(a1)
a2=nums2-nums1
print(a2)
#差的方式二:difference
b1=nums1.difference(nums2)
print(b1)
b2=nums2.difference(nums1)
print(b2)
結(jié)果:
{6}
{8,9,10,7}
{6}
{8,9,10,7}
9、對(duì)稱差集(^)
nums1={1,2,3,4,5,6}
nums2={1,2,3,4,5,10,7,8,9}
#對(duì)稱差集表示方法一:^
a1=nums1^nums2
print(a1)
#對(duì)稱差集表示方法二:symmetric_difference
a2=nums2.symmetric_difference(nums1)
print(a2)
結(jié)果:
{6,7,8,9,10}
{6,7,8,9,10}
10、集合轉(zhuǎn)換
se=set(range(4))
li=list(se)
tu=tuple(se)
st=str(se)
print(li,type(li))
print(tu,type(tu))
print(st,type(st))
結(jié)果:
[0,1,2,3]
(0,1,2,3)
{0,1,2,3}
補(bǔ)充:frozenset
冰凍集合,是一種特殊的集合類型,也是集合(集合是列表的話,冰凍集合就是元組)
下面創(chuàng)建冰凍集合(一般不會(huì)創(chuàng)建空的冰凍集合)
同時(shí)下面包含函數(shù)的補(bǔ)充
#創(chuàng)建帶數(shù)據(jù)的冰凍集合
info=frozenset(('xuexi','gongzuo','kaoyan','xiuxi'))
print(info,type(info))
#成員監(jiān)測(cè)
result='gongzuo'ininfo
print(result)
#遍歷冰凍集合
foriininfo:
print(i)
#集合推導(dǎo)式(無法得到冰凍集合,可以得到集合,列表,元組,字典類型)
result={iforiininfo}
print(result,type(result))
#函數(shù)
#冰凍集合可以使用集合的函數(shù)(不修改集合本身的函數(shù)都可以使用)
info=frozenset(('xuexi','gongzuo','kaoyan','xiuxi'))
#copy()
result=info.copy()
print(result)
#集合操作交集,并集,差集,對(duì)稱差集等不修改冰凍集合本身就能使用:冰凍集合的操作結(jié)果都是冰凍集合
info=frozenset(('xuexi','gongzuo','kaoyan','xiuxi'))
info2={'xuexi','gongzuo','kaoyan','xiuxi'}
#冰凍集合操作
result=info.union(info2)
print(result)
#普通集合操作(冰凍集合是參考集合)
result=info2.union(info)
print(result)
以上內(nèi)容為大家介紹了python集合操作方法詳解,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/