shell指令碼中的 EOF 是什麼意思?
集合
集合是由一組無序排列且不重複的元素組成,示例如下:
set1 = {1,2,‘a’}
集合使用大括號表示,元素型別可以是數字型別、字串、元組,但不可以是列表、字典,具體示例如下:
set2 = { 2,[ ‘a’,1] } #錯誤,元素包含列表
set3 = { 2,[ ‘a’:1] } #錯誤,元素包含字典
set4 = { 2,( ‘a’,1) } #正確,元素包含元組
使用大括號建立的集合屬於可變集合,即可以新增或刪除元素。
此外,還存在一種不可變集合,即不允許新增或刪除元素。 接下來演示建立這兩種集合的方法,如例所示。
set1 = set (’ xiaoqian ') #通過set( )建立可變集合
print(type(set1),set1)
set2 = set ((’ xiaoqian ',‘xiaofeng’))
set3 = set [(’ xiaoqian ',‘xiaofeng’)]
print(set2,set3)
fset1 = frozneset(’ xiaofeng ') #通過fronzenset( )建立不可變集合
print( type(fest1) )
print( fest1 )
集合的一個重要用途是將一些資料結構中的重複元素去除,如例所示。
list1 = [ 1,2,3,4,3,2,1 ]
set1 = set(list1) #將列表轉換為集合並去重
list2 = list(set1) #將集合轉換為列表
print(list2)
集合常用操作
同其他資料型別類似,集合也有一系列常用的操作,例如新增元素、刪除元素等。通過這些操作,可以很方便地處理集合。
1、新增元素
集合中新增元素可以使用add()和update()函式,如例所示。
set1,set2 = { 1,2,3 },{ 3,4,5,6 }
set1.add(4)
print(set1)
set1.updata(set2)
print(set1)
2、刪除元素
集合中刪除元素可以使用remove()和discard()函式,如例所示。
set1 = {1,2,3,4}
set1.remove(3) #刪除不存在的元素時報錯
set.discard(4) #刪除不存在的元素時不會報錯
set.discard(5)
print(set1)
set1.clear() #清空集合
print(set1)
3、集合運算
集合可以參與多種運算,如表所示。
除了上述運算子外,還可以通過union()、intersection()與difference()函式實現集合的並集、交集與差集。
set1,set2 = { 1,2,3 },{ 2,3,4 }
print(set1.union(set2)) #並集
print(set1.intersection(set2)) #交集
print(set1.difference(set2)) #差集
4、集合遍歷
集合可以通過for迴圈遍歷其中的元素。
set1= { 1,2,3,4 }
for n in set:
print(n,end=' ')
5、字典推導與集合推導
字典推導與列表推導相似,它將推匯出一個字典。
dict1 = { x : x * x for x in range(5) }
字典推導使用大括號包圍,並且需要兩個表示式,一個生成key,一個生成value,兩個表示式之間使用冒號分隔,結果返回字典。若通過print()列印dict1,則輸出結果為:
{ 0:0,1:1,2:4,3:9,4:16}
集合推導也與列表推導相似,只需將中括號改為大括號。
set1 = { x * x for x in range(5)}
集合推導將返回一個集合。若通過print()列印set1,則輸出結果為:
{0,1,4,9,16}