7 python資料型別之集合set

2022-05-27 05:15:13 字數 3610 閱讀 8044

資料型別之集合set

set 不允許重複的無序集合,不能通過下標取值,因為無序

1、建立

建立空集合

s ={} 預設型別為字典,所以不是空集合,空集合如下

s = set()

s = #字典是有鍵值對,集合沒有

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 =

#集合中新增元素

st.add(77)

print(st)

a = 

b =

#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 = ,

"#2":,

"#3":

}new_dict = ,

"#3":,

"#4":

}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 資料型別

1.如果乙個字串包含很多需要轉義的字元,對每乙個字元都進行轉義會很麻煩。為了避免這種情況,我們可以在字串前面加個字首r,表示這是乙個 raw 字串,裡面的字元就不需要轉義了。例如 r 但是r 不能表示多行文字,怎麼解決 2.python在後來新增了對unicode的支援,以unicode表示的字串用...

7 python資料型別補充 集合 深淺複製

一 基礎資料型別補充知識 1 fromkeys 將乙個物件作為values分別複製給另乙個物件,另乙個物件裡的元素作為keys 注意 此時作為values的元素位址相同,因為他們引用的是同乙個位址,所以values相同。dic dict.fromkeys 1,2,3,4,5,6,print dic ...

7 Python基本資料型別 數字

在32位機器上,整數的位數為32位,取值範圍為 2 31 2 31 1,即 2147483648 2147483647 在64位系統上,整數的位數為64位,取值範圍為 2 63 2 63 1,即 9223372036854775808 9223372036854775807 例如 2 1 0 1 2...