集合set 和 深淺copy

2022-05-08 15:00:13 字數 2957 閱讀 1190

集合是無序的,不重複的資料集合,它裡面的元素是可雜湊(不可變型別),但是集合本身是不可雜湊,(所以集合做不了字典的鍵)

集合最重要的2點:  去重:把乙個列表變成集合,就自動去重了。

關係測試:    測試兩組資料之間的交集、並集、差集等關係

1 set =set()

2 set =

1

add.()

2 set =

3set.add(self, element)4#

set.add('kitty')56

update(self, iterable) 迭代新增

7set.update() 8#

set = 9#

set.update('龜叔')10#

print(set)11#

1

pop(self) 隨機刪1個element

2remove(self, element) 指定刪1個element

3clear(self) 清空set()

4del set 刪集合本身 返回'set

'>

1 set1 =                     

2 set2 =

3 交集: 3,4 set1 &set2 set1.intersection(set2)

4 反交集:1,2,5,6 set1 ^set2 set1.symmetric_difference(set2)

5 並集:1,2,3,4,5,6 set1 |set2 set1.union(set2)

6差集 :

7 set1 - set2 是 1,2 set1 -set2 set1.difference(set2)

8 set2 - set1 是 3,4 ***----*** ****------------****

910 set1 = )5#

2.1.1賦值運算: (對於不可雜湊型別:list dict set() )

1         dic1 = 

2 dic2 =dic1 對於不可雜湊型別,dic1 dic2 都是指向同一位址,同步改變

3 dic1['

name

'] = '

cat'

4print

(dic1)

5print

(dic2)6#

7#

2.1.2 copy():

1

[深copy]

2 dic1 =

3 dic2 =dic1.copy()

4 dic1['

name

'] = '

cat'

5print

(dic1)

6print

(dic2)

7

8

9 ----------

10 ##########################

11 -------[深copy,[淺copy] ]----------如果 copy(self) 對於不可雜湊型別 list dict set() 如果內部有巢狀 內部是淺copy

12 dic1 =

13 dic2 =dic1.copy()

14 dic1['

name

'][1] = '

dog'

15print

(dic1)

16print

(dic2)

17

18 內部巢狀的list 仍然指向同一位址

1920 dic1 = ,'

age':18}

21 dic2 =dic1.copy()

22 dic1['

name

']['

class

'] = '

teacher'23

print

(dic1)

24print

(dic2)

25 , '

age': 18} 內部巢狀的dict 仍然指向同一位址

26 , '

age': 18}

2728 多層巢狀,第一層建立的是新的記憶體位址,從第二層開始,指向的都是同一記憶體位址,二層往下,同時更新變化

1

import

copy

2copy.deepcopy()

3import

copy

4 dic1 =

5 dic2 =copy.deepcopy(dic1)

6 dic1['

name

'][1] = '

dog'

7print

(dic1)

8print

(dic2)

9

10

11 對於deepcopy()來說,兩個是完全獨立的,不管巢狀多少層,都 不會 發生同步更新變化。

集合 深淺copy

集合 特點 集合是可變的資料型別,但他裡面的元素必須是不可變的資料型別,無序,不可重複。建立 set1 set 或者直接建立set2 集合的增刪查 增 add set1.add 女生 update set1.update abc 迭代,類似於列表的extend 刪 pop set1.pop 隨機刪除...

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

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 在迴圈列...

集合及深淺copy

集合是無序的,不重複的資料集合,它裡面的元素是可雜湊的 不可變型別 但是集合本身是不可雜湊 所以集合做不了字典的鍵 的。以下是集合最重要的兩點 1.去重,把乙個列表變成集合,就自動去重了。2.關係測試,測試兩組資料之前的交集 差集 並集等關係。1.賦值運算 l1 1,2,3,cat dog l2 l...