Python中的copy()函數(shù)詳解(list,array)
Python copy()函數(shù)詳解(list,array)
list

python變量名相當(dāng)于標(biāo)簽名list2 = list1, 直接賦值,實(shí)質(zhì)上指向的是同一個內(nèi)存值。
任意一個變量(list1 or list2)發(fā)生改變,都會影響另外一個。
e.g.
>>> list1=[1,2,3,4,5,6] >>> list2=list1 >>> list1[2]=88 >>> list1 [1, 2, 88, 4, 5, 6] >>> list2 [1, 2, 88, 4, 5, 6]
而list3和list4是通過切片對list1的復(fù)制操作,分別指向了新的值。
任意改變list3或list4的值,不會影響其他。
array
array類型的數(shù)據(jù)進(jìn)行拷貝時,和list類型有一點(diǎn)區(qū)別。

數(shù)組切片是原始數(shù)組的視圖,這意味著數(shù)據(jù)不會被復(fù)制,視圖上的任何修改都會被直接反映到源數(shù)組上。
array1, array2, array3, array4實(shí)際指向同一個內(nèi)存值,任意修改其中的一個變量,其他變量值都會被修改。
若想要得到的是array切片的一份副本而非視圖,就需要顯式的進(jìn)行復(fù)制操作函數(shù)copy()。
e.g.
array5 = array1.copy() # 對原始的array1的復(fù)制 array6 = array[1:4].copy() # 對切片array[1:4]的復(fù)制
那么,修改array5或array6,就不會影響array1
Python字典的copy函數(shù)
copy的功能
將當(dāng)前字典復(fù)制一個新的字典(與原字典不是相同的內(nèi)存地址)
copy的用法
用法∶
dict.copy() ->該函數(shù)無參數(shù),返回一個一模一樣的內(nèi)存地址不同的字典
In [33]: old_dict = {'name' : 'insane' , 'age' : 33}
In [34]: new_dict = ld_dict.copy()
In [35]: id(new_dict) != id(old_dict)
Out[35]: True實(shí)戰(zhàn)
# coding:utf-8
fruits = {
'apple': 30,
'banana': 50,
'pear': 100
}
real_fruits = fruits.copy()
print(real_fruits)
real_fruits['orange'] = 50
real_fruits.update({'cherry': 100})
print(real_fruits)
print('原始fruits:', fruits)
real_fruits['apple'] = real_fruits['apple'] - 5
print(real_fruits)
real_fruits['pear'] -= 3
print(real_fruits)
real_fruits.clear()
print(real_fruits)
print('第二天。。。')
real_fruits = fruits.copy()
print(real_fruits){'apple': 30, 'banana': 50, 'pear': 100}
{'apple': 30, 'banana': 50, 'pear': 100, 'orange': 50, 'cherry': 100}
原始fruits: {'apple': 30, 'banana': 50, 'pear': 100}
{'apple': 25, 'banana': 50, 'pear': 100, 'orange': 50, 'cherry': 100}
{'apple': 25, 'banana': 50, 'pear': 97, 'orange': 50, 'cherry': 100}
{}
第二天。。。
{'apple': 30, 'banana': 50, 'pear': 100}
Process finished with exit code 0總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
DataFrame數(shù)據(jù)框模糊查詢與去重方式
數(shù)據(jù)框模糊查詢通常使用contains函數(shù)和正則表達(dá)式來實(shí)現(xiàn),可以查詢以某個字符開頭、包含或結(jié)尾的數(shù)據(jù),若數(shù)據(jù)類型不一致可能會報(bào)錯,需統(tǒng)一為str類型,數(shù)據(jù)框去重則通過drop_duplicates函數(shù)實(shí)現(xiàn),可指定列進(jìn)行去重,并有多種處理重復(fù)值的方式2024-09-09
Python實(shí)現(xiàn)郵件發(fā)送功能的方法詳解
本文將學(xué)會各種類型的郵件發(fā)送方式,比如普通文本郵件、帶附件的郵件等等,如何通過程序發(fā)送郵件現(xiàn)在我們還不太了解,接下來就會為大家進(jìn)行詳細(xì)的介紹2022-05-05
Python3里的super()和__class__使用介紹
這篇文章主要介紹了Python3里的super()和__class__使用介紹,本文用實(shí)例講解了這兩個方法之間的關(guān)系,需要的朋友可以參考下2015-04-04

