1. 程式人生 > >2019.1.12 集合相關內容

2019.1.12 集合相關內容

 1 #集合:
 2 #集合物件(set)是一組無序排列的可雜湊的值,包含兩種型別:可變集合(set)
 3 #和不可變集合(frozenset),所以set不是可雜湊的,frozenset是可雜湊的,能當
 4 #字典的鍵
 5 #注:如果一個物件在自己的生命週期中有一雜湊值(hash value)是不可改變的,
 6 #那麼它就是可雜湊的(hashable)的。
 7 #不可變型別是可hash #tuple str freezeset
 8 #可變型別是不可hash ##list set
 9 num={}
10 print(type(num),num)
11 num2={1,2,3,4,5}
12 print(type(num2),num2)#型別是set 是集合 13 num3={1,2,3,4,5,5,4,3,2,1} 14 print(type(num3),num3)#num3和num2的結果是一樣的,因為會去重。 15 16 #列表是中括號,元組是小括號 17 #集合(set)把不同的元素組成一起形成集合,是python基本的資料型別。 18 #集合元素(set elements):組成集合的成員 19 #集合的形式:a=set() 20 21 #建立一個集合的辦法: 22 #1.一種是直接把一堆元素用花括號括起來 23 #2.一種是使用set()工廠函式 24 #注意:集合沒有自己的語法格式,只能通過集合的工廠方法set()和frozenset()建立
25 26 set1={1,2,3,4,5,"a","我愛你中國","c","1"}#它是無序的,所以不能索引 27 print(set1) 28 29 a=set() 30 print(type(num),num,type(a),a) 31 32 set2=set([5,6,8,9,4,2,3,1]) 33 print(type(set2),set2) 34 #去掉列表中重複的元素 35 # 36 num1=[1,2,3,4,5,5,3,1,0] 37 temp=[] 38 for each in num1: 39 if each not in temp: 40 temp.append(each)
41 print(temp) 42 43 num1=list(set(num1))#list將集合列表化 44 print("這次打印出來的列表也去重了",num1)#去重,是用集合的去重特點做到的。 45 46 #訪問集合中的值: 47 #1.可以使用for把集合中的資料一個個讀取出來 48 #2.可以通過in 或者 not in 判斷一個元素是否在集合中已經存在 49 #注意:集合本身是無序的,所以不能為集合建立索引或切片操作,只能迴圈遍歷或使用 50 #in not in 來訪問或判斷集合元素。 51 #新增和移除集合中的值: 52 s=num1 53 #s.add()是把要傳入的元素做為一個整體新增到集合中。 54 #s.update()是把要傳入的元素,做為個體傳入到集合中。 55 #s.remove() 56 #注意:只有可變集合才能更新 57 58 #不可變集合(frozenset) 59 #frozen:冰凍的,凍結的 60 num4=frozenset([1,2,3,4,5,6,7])