Python—集合
集合set
集合是可變數據類型,集合內的元素必須是不可變數據類型;集合是無序的并且集合內的元素必須是不重復的。
增:
add—向集合內添加數據
set1 = set() #創建一個空的集合set1.add('nero') #向集合內添加數據update—向集合內迭代添加數據
set1 = set()set1.update('abc') #向集合內迭代添加數據 >>>{'a', 'b', 'c'}刪:
pop—隨機刪除集合內的一個數據
set1 = {'c5',22,53,'a',44,'b','nero'}set1.pop() #隨機刪除集合內的一個數據 >>>{'c5', 53, 22, 'b', 'a', 'nero'}remove—刪除指定數據,如該數據不存在則報錯
set1 = {'c5',22,53,'a',44,'b','nero'}set1.remove('nero') #刪除指定數據,如該數據不存在則報錯 >>>{'a', 44, 53, 'c5', 22, 'b'}clear—清空集合
set1 = {'c5',22,53,'a',44,'b','nero'}set1.clear() #清空集合 >>>set()del—刪除整個集合
del set1 #刪除整個集合>>>NameError: name 'set1' is not defined查:
查詢集合內的數據,只能使用for循環
交集(&或intersection)
set1 = {'c5',22,53,'a',44,'b','nero'} set2 = {5,22,53,8,'c5',10,'d3','jason'} set3 = {53,'c5',99,57}print(set1 & set2 & set3) #返回多個集合之間相同的數據 >>>{'c5', 53}print(set1.intersection(set2.intersection(set3))) #等同于& >>>{'c5', 53}并集(|或union)
set1 = {'c5',22,53,'a',44,'b','nero'} set2 = {5,22,53,8,'c5',10,'d3','jason'} set3 = {53,'c5',99,57}print(set1 | set2 | set3) #將多個集合合并,除去重復數據 >>>{'nero', 'jason', 99, 'd3', 5, 8, 10, 44, 'c5', 53, 'a', 22, 'b', 57}print(set1.union(set2.union(set3))) #等同于| >>>{'b', 'nero', 5, 8, 10, 22, 'c5', 99, 'jason', 44, 'a', 53, 'd3', 57}反交集(^或symmetric_difference)
set1 = {'c5',22,53,'a',44,'b','nero'} set2 = {5,22,53,8,'c5',10,'d3','jason'}print(set1 ^ set2) #去除兩個集合內都有的數據后,進行合并,多次反交集運算應注意運算規則,如三個集合反交集,set3內與set1、set2都有的數據還會加入到最終的結果中print(set1.symmetric_difference(set2)) #等同于 ^ >>>{5, 'jason', 8, 10, 'd3', 44, 'b', 'a', 'nero'}差集
set1 = {'c5',22,53,'a',44,'b','nero'} set2 = {5,22,53,8,'c5',10,'d3','jason'}print(set1 - set2) # == set1-(兩個集合都有的數據),set1并不會與set2的數據合并 >>>{'b', 'nero', 44, 'a'}子集與超集
#子集 set1 = {'c5',22,53} set2 = {5,22,53,8,'c5',10,'d3','jason'}print(set1 < set2) #判斷set1是否為set2的子集,也就是判斷set2中是否包含了set1所有的數據,返回布爾值 >>>Trueprint(set1.issubset(set2)) #等同于 <#超集 print(set2 > set1) #判斷set2是否為set1的超集,返回布爾值 >>>Trueprint(set2.issuperset(set1)) #等同于 >不可變集合
set4 = frozenset('hello nero') #創建名為set4的不可變集合,并迭代添加數據到集合內,去重print(set4) >>>frozenset({'o', 'e', 'l', ' ', 'r', 'h', 'n'})lis1 = [0,1,1,1,0,2,3,3,4,4,5,5,6,6,8,8] set4 = frozenset(lis1) #將列表轉換成不可變集合set4 lis = list(set4) #再將不可變集合轉換成列表,這個列表已經去除了重復數據 print(set4) >>>frozenset({0, 1, 2, 3, 4, 5, 6, 8}) print(lis) >>>[0, 1, 2, 3, 4, 5, 6, 8]枚舉
lis1 = [1,2,3,4]for index,vlaue in enumerate(lis1): #enumerate同時返回元素的索引和元素,可設置索引,默認位置是0print(index,vlaue) >>> 0 1 1 2 2 3 3 4 for index,vlaue in enumerate('hello nero',1):print(index,vlaue) >>> 1 h 2 e 3 l 4 l 5 o 6 7 n 8 e 9 r 10 o?
轉載于:https://www.cnblogs.com/NeroCl/p/8086620.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: Android应用中的动画详细使用教程
- 下一篇: 在CesiumVR基础上实现3D左右立体