python中字典的排序和複製

2021-07-07 02:14:20 字數 1247 閱讀 4085



在開發過程中通常要對字典進行排序,複製等操作,和列表一樣,字典的排序也採用sorted()函式,字典的複製除了可以使用update()函式外,還可以使用copy()函式,但是得注意二者之間的區別。

字典的排序

先來演示字典的排序函式sort()的使用:

print dict

#按照key進行排序。items可以用於字典的遍歷,返回(key,value)的序列,lampda用於建立匿名函式,並返回計算結果,d[0]表示key

print sorted(dict.items(), key=lampda d:d[0])

#按照value進行排序。同樣d[1]表示value

print sorted(dict.items(), key=lampda d:d[1])

字典的複製

字典的複製前面用的是update函式,這個方法是將字典a中的資料複製到字典b中,且字典中原有的資料保持不變,從而實現了字典b中資料的擴充。但是sorted不同,將字典a中的資料複製到字典b中,update會清除掉字典b中原有的資料。另外copy函式實現的是字典的淺拷貝,deepcopy函式用於實現深拷貝。

下面演示copy函式的使用

dict2 =

dict2 = dict.copy()

print dict2

淺拷貝只是複製資料,資料的引用並沒有被複製,因此新的資料和舊的資料使用同一塊記憶體塊,深拷貝則不一樣,它拷貝物件內部所有資料和引用,相當於c語言中指標的作用。例如:字典b淺拷貝字典a中的資料,如果字典b中的資料發生修改,字典a中的資料也將發生變化;但是如果字典b深拷貝字典a中的資料,則即使b中的資料變了,a中也不會變。

下面演示深拷貝和淺拷貝:

import copy

dict2 =

#copy.deepcopy等價於dict.deepcopy

dict2 = copy.deepcopy(dict)

#copy.copy 等價於dict.copy

dict3 = copy.copy(dict)

dict2["a"]="watermelon"

print dict

dict3["a"]="watermelon"

print dict

Python中字典的複製和引用

author lxp 自定義函式 a p2 def myfunc pinfo print print pinfo pinfo 33 pinfo 33 0.0088 print pinfo pinfo 33 0.0044 print pinfo print myp p a print myp.ps m...

python 字典和巢狀字典排序

正常字典的排序我們都知道,像這樣 a b sorted a.items key lambda x x 1 就會輸出如下結果 101,0 100,1 102,2 那如果是巢狀字典呢,比如 a 101 102 實際上是類似的,我們只要理解了上面這個key的含義,lambda可以理解為乙個函式,輸出為x ...

python 字典的淺複製與深複製

copy 方法返回乙個新字典,包含的鍵值對與原來的字典相同,這個方法執行的是淺複製,因為值本身是原件,而非副本 如上圖所示,當替換副本中的值時,原件不受影響。然而修改副本中的值,原件也將發生變化,因為這是就地修改而不是替換,原件指向的也是被修改的值。即淺複製的副本發生替換時,原件不受影響,發生修改時...