7,資料型別轉換,set 集合,和深淺copy

2022-05-17 10:53:27 字數 3002 閱讀 3916

str轉換成list  用split

list轉換成str  用join

tuple轉換成list

tu1 = (1,2,3)

li = list(tu1)(強轉)

tu2 = tuple(li)(強轉)

dic轉換成list

c2 = list(dic)

各種資料型別轉換成bool

0,'',,(),{}, set() 轉成bool都是fasle

在迴圈列表或者字典刪除元素的過程中,有可能會影響結果,有可能會報錯。

報錯資訊如下:

runtimeerror: dictionary changed size during iteration

解釋:執行時錯誤:字典在迭代期間更改了大小。

集合

set2 =   set去重

print(set2)

l1 = [11, 11, 22, 22, 33, 33, 33, 44]    列表去重

l2 = list(set(l1))

l2.sort()

print(l2)

增(add,update)

set1 = 按元素增加(不能切片,不能索引,不能不長)

set1.add(

'zhangyajie')

print(set1)

set1 =  迭代新增

set1.update(['asd'])

print(set1)

刪(pop,remove,clear,del)

set1 = 

print(set1.pop()) #隨機刪除

set1.remove('alex') #按元素刪除

print(set1)

set1.clear() #清空列表

print(set1)

del set1 #刪除列表

print(set1)

查(for)

set1 = 

li =

for i in

set1:

if i.startswith('

a') or i.endswith('x'

):

print(li)

交集(intersetion  和 &)

set1 = 

set2 =

set3 = set1 &set2

print(set3)

print(set1.intersection(set2))

並集 |  和 union

print(set1 |set2)

print(set1.union(set2))

差集 difference -

set1 = 

set2 =

print(set1.difference(set2)) #

set1 獨有

print(set2.difference(set1)) #

set2 獨有

print(set1 - set2) #set1獨有的

print(set2 - set1) #set2獨有的

反差集   ^  和  symmetric_difference

print(set1 ^set2)

print(set1.symmetric_difference(set2))

子集

set1 = 

set2 =

print(set1 > set2) #

set1是set2的子集

超集

set1 = 

set2 =

print(set2.issuperset(set1))

凍結 set

set1 = frozenset()

print(set1,type(set1))

對於賦值運算來說,指向的都是同乙個記憶體位址,一變都變。

l1 = [1, 2, 3]

l2 =l1

l3 =l2

print

(id(l1))

print

(id(l2))

print

(id(l3))

print

(l3)

print

(l2)

print(l1)

深淺copy

淺copy

對於淺copy來說,第一層記憶體位址是建立新的記憶體位址(意思就是兩個記憶體位址不一樣),第二層開始,共用同乙個記憶體位址,

所以對於第3,4,5,6曾之後,共用的都是同乙個記憶體位址。

l1 = [11,22,33]

l2 =l1.copy()

print

(id(l1))

print

(id(l2))

print

(l1)

print(l2)

li = [11, 22, ['barry',[222]]]

l1 = li.copy()

print(id(li))

print(id(l1))

print(id(li[-1]))

print(id(l1[-1]))

深copy

l1 = [11, 22, 33]

l2 =copy.deepcopy(l1)

print

(l1, id(l1))

print

(l2, id(l2))

結果:[11, 22, 33, 666] 233294746056[11, 22, 33] 233294657800

資料型別 集合set

一 1 用途 1 去重 2 關係運算 注 集合的目的是將不同的值存放到一起,不同的集合間用來做關係運算,無需糾結於集合中單個值 2 定義方式 在 內用逗號分割開多個元素,其中元素的特點為 1 所有的元素必須是不可變型別 2 集合內元素不能重複 3 集合內元素無序s s set print s 自動去...

基本資料型別補充,set集合,深淺拷貝等

ll wang jian wei 可以通過這個方式將列表變成字串 ll1 join ll print ll1 wangjianwei 問題 將列表中姓 周 的刪除,lis 周杰倫 周潤發 周樹人 馬化騰 看到這個問題首先第一反應就是for迴圈做判斷,然後remove,然後並非如此.lis 周杰倫 周...

7 python資料型別之集合set

資料型別之集合set set 不允許重複的無序集合,不能通過下標取值,因為無序 1 建立 建立空集合 s 預設型別為字典,所以不是空集合,空集合如下 s set s 字典是有鍵值對,集合沒有 s set 括號內可以接收可以迭代的元素,str list tuple dict 2 轉換 s 11,123...