7、python資料類型之集合set

來源:互聯網
上載者:User

標籤:覆蓋   tab   哪些   cap   super   重複   bsp   print   discard   

資料類型之集合set
set 不允許重複的無序集合,不能通過下標取值,因為無序
1、建立
   建立空集合
   s ={} 預設類型為字典,所以不是空集合,空集合如下
   s = set()
   s = {11,12,12,34,23} #字典是有索引值對,集合沒有
   s = set()#括弧內可以接收可以迭代的元素,str list tuple dict
2、轉換
   s = ([11,123,1234,12345])
   l = "123"
   l = [1,2,3,4]
   l = (1,2,3,4)
   s = set(l)
3、方法
#集合中元素無序不重複
st = {11,22,33,44,55,66}
#集合中添加元素

st.add(77)print(st)

 

a = {11,22,33,55,66}b = {55,66,77,11}

#diference方法

#a.difference(b),a不同於b的元素有哪些,a保持不變

reta = a.difference(b)print(a)print(reta)

#b.difference(a),b不同於a的元素有哪些,b保持不變

print(b)retb = b.difference(a)print(retb)

#difference_update方法,找出a不同於b的元素並重新覆蓋a

a.difference_update(b)print(a)

#找出b不同於a的元素並覆蓋b

b.difference_update(a)print(b)

 #找出a集合不同於b結合的的元素,b集合不同於a集合的元素,可以賦值給一個新集合

retab = a.symmetric_difference(b)retba =  b.symmetric_difference(a)print(retab)print(retba)

#找出a集合不同於b結合的的元素,b集合不同於a集合的元素,並將找到的結果更新到a結合

a.symmetric_difference_update(b)print(a)

#找出b集合不同於a結合的的元素,a集合不同於b集合的元素,並將找到的結果更新到b結合

b.symmetric_difference_update(a)print(b)

 #discard移除集合中的元素,如果元素存在移除,不存在不報錯

print(a)a.discard(11)print(a)a.discard(456)print(a)

 #remove移除集合中的元素,如果元素存在移除,不存在報錯

print(a)a.remove(22)print(a)

 #111元素不存在與a中,下面的會報錯

a.remove(111)a.remove()

 #intersaction取兩個集合的交集,並可以賦值給一個新的集合

retinab = a.intersection(b)print(retinab)

#a.intersection_update(b)取兩個集合的交集,並將得到的集合更到集合a

a.intersection_update(b)print(a)

#並集union
#取a集合和b集合的並集

retuab = a.union(b)print(retuab)

#update將b集合更新追加到a集合中

a.update(b)print(a)

#a.isdisjoint(b)

t = a.isdisjoint(b)print(t)

#a.issubset(b)  a是不是b的子序列

print(a.issubset(b))

#a.issuperset(b) 是不是b的父序列

print(a.issuperset(b))

#a.pop()把一個元素移除,可以將這個移除的值賦值給一個變數

ta = a.pop()print(ta)

#練習:尋找差異,並更新old字典
#將old_dict、new_dict中都存在的更新,old_dict在new_dict中不存在的刪除
#new_dict在old_dict中不存在的,追加到old中去

old_dict = {    "#1":{ ‘hostname‘:‘c1‘, ‘cpu_count‘: 2, ‘mem_capicity‘: 80 },    "#2":{ ‘hostname‘:‘c1‘, ‘cpu_count‘: 2, ‘mem_capicity‘: 80 },    "#3":{ ‘hostname‘:‘c1‘, ‘cpu_count‘: 2, ‘mem_capicity‘: 80 }}new_dict = {    "#1":{ ‘hostname‘:‘c1‘, ‘cpu_count‘: 2, ‘mem_capicity‘: 800 },    "#3":{ ‘hostname‘:‘c1‘, ‘cpu_count‘: 2, ‘mem_capicity‘: 80 },    "#4":{ ‘hostname‘:‘c2‘, ‘cpu_count‘: 2, ‘mem_capicity‘: 80 }}k1 = old_dict.keys()k2 = new_dict.keys()k1_set = set(k1)k2_set = set(k2)k1_d_k2 = k1_set.difference(k2_set)print(k1_d_k2)for i1 in k1_d_k2:    old_dict.pop(i1)print(old_dict)k2_d_k1 = k2_set.difference(k1_set)print(k2_d_k1)for i2 in k2_d_k1:    old_dict[i2] = new_dict[i2]print(old_dict)k1_inter_k2 = k1_set.intersection(k2_set)print(k1_inter_k2)for i3 in k1_inter_k2:    old_dict[i3] = new_dict[i3]print(old_dict)print(old_dict==new_dict)

7、python資料類型之集合set

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.