Python列表淺復制,python3 copy_Python3 深淺拷貝

 2023-10-05 阅读 31 评论 0

摘要:一 定義在Python中對象的賦值其實就是對象的引用。當創建一個對象,把它賦值給另一個變量的時候,python并沒有拷貝這個對象,只是拷貝了這個對象的引用而已。淺拷貝:?淺拷貝值只拷貝一層,具有自己單獨的內存地址,二層或其他層不拷貝&

一 定義

在Python中對象的賦值其實就是對象的引用。當創建一個對象,把它賦值給另一個變量的時候,python并沒有拷貝這個對象,只是拷貝了這個對象的引用而已。

淺拷貝:?淺拷貝值只拷貝一層,具有自己單獨的內存地址,二層或其他層不拷貝,指向原有的內存地址。

深拷貝:?就是克隆一份,具有自己單獨的內存地址,兩者完全不相干設。

Python列表淺復制、二 術語

1,變量:是一個系統表的元素,擁有指向對象的連接空間。

2,對象:被分配的一塊內存,存儲其所代表的值。

3,引用:是自動形成的從變量到對象的指針。

4,注意:類型(int類型,long類型(python3已去除long類型,只剩下int類型的數據))屬于對象,不是變量。

python列表去重?5,不可變對象:一旦創建就不可修改的對象,包括字符串、元組、數字。

6,可變對象:可以修改的對象,包括列表、字典。

三 應用范圍

1,切片可以應用于:列表、元組、字符串,但不能應用于字典。

2,深淺拷貝,既可應用序列(列表、元組、字符串),也可應用字典。

python 切片,四 作用

1,減少內存的使用。

2,以后在做數據的清洗、修改或者入庫的時候,對原數據進行復制一份,以防數據修改之后,找不到原數據。

五 應用

list類型

python 淺拷貝、# 淺拷貝

'''

淺拷貝方法:

1、a = b[:]

2、a = b.copy()

python拷貝。3、引用copy模塊,import cope | a = copy.copy(b)

'''

wife = ['diaoqian',1988,['slaras',10000]]

hasband = wife[:]

print(wife,hasband) # ['diaoqian', 1988, ['slaras', 10000]] ['diaoqian', 1988, ['slaras', 10000]]

python 賦值。hasband[0] = 'zhaoyun'

hasband[2][1] = 2000

print(hasband)

# ['zhaoyun', 1988, ['slaras', 2000]]

print(wife)

深淺拷貝,# ['diaoqian', 1988, ['slaras', 2000]]

'''

淺拷貝原則:

1、只復制一層,他變我不變,其余層,他變我也變。

2、如果只有一層,就相當于深復制了

python 數組,'''

# 深拷貝

'''

深拷貝方法:

1、引用copy模塊,import cope | a = copy.deepcopy(b)

qpython、'''

import copy

wife = ['diaoqian',1988,['slaras',10000]]

hasband = copy.deepcopy(wife)

print(wife,hasband)

python123?# ['diaoqian', 1988, ['slaras', 10000]] ['diaoqian', 1988, ['slaras', 10000]]

hasband[0] = 'zhaoyun'

hasband[2][1] = 8000

print(hasband)

# ['zhaoyun', 1988, ['slaras', 8000]]

python中copy的用法?print(wife)

# ['diaoqian', 1988, ['slaras', 10000]]

'''

深拷貝小結:

1、深度拷貝就是克隆一份,具有自己單獨的內存地址,兩者完全不相干設,他變我不變。

'''

dict類型

# 淺拷貝

import copy

wife = {'name':{'diaoq':30},'slaras':10000}

hasband = copy.copy(wife)

print(hasband,wife)

# {'name': {'diaoq': 30}, 'slaras': 10000} {'name': {'diaoq': 30}, 'slaras': 10000}

hasband['name']['diaoq']= 32

hasband['slaras'] = 12000

print(hasband)

# {'slaras': 12000, 'name': {'diaoq': 32}}

print(wife)

# {'slaras': 10000, 'name': {'diaoq': 32}}

# 深拷貝

import copy

wife = {'slaras': 10000, 'name': {'diaoq': 30}}

hasband = copy.deepcopy(wife)

print(hasband,wife)

# {'name': {'diaoq': 30}, 'slaras': 10000} {'name': {'diaoq': 30}, 'slaras': 10000}

hasband['name']['diaoq'] = 32

hasband['slaras'] = 12000

print(hasband)

# {'slaras': 12000, 'name': {'diaoq': 32}}

print(wife)

# {'slaras': 10000, 'name': {'diaoq': 30}}

總結:

不論針對列表還是字典,淺拷貝時,修改的元素類型是可變類型時,他變我也變,修改的類型是不可變類型時,他變我不變。

不論針對列表還是字典,深拷貝時,他變我不變。

可變類型:字典、列表。

不可變類型:整型、字符串、元組。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/114269.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息