Python 是一种广泛使用的高级编程语言,其语法简洁且功能强大。本文将详细讲解 Python 中的赋值、深浅拷贝以及可变与不可变对象的基本概念和使用方法。
一、赋值
赋值是编程中最基本的操作之一,它用于将值或对象绑定到变量名。在 Python 中,赋值使用等号 =
来进行。
a = 10 # 将整数 10 赋值给变量 a
b = "Hello" # 将字符串 "Hello" 赋值给变量 b
c = [1, 2, 3] # 将列表 [1, 2, 3] 赋值给变量 c
需要注意的是,Python 中的变量名只是对象的引用(或标签)。赋值操作不会创建对象的副本,而是让变量名指向同一个对象。
x = [1, 2, 3]
y = x # y 指向 x 所指向的对象,而不是创建一个新对象
y.append(4) # 修改 y 指向的对象
print(x) # 输出 [1, 2, 3, 4],因为 x 和 y 指向同一个对象
二、可变与不可变对象
Python 中的对象可以分为可变对象和不可变对象。
-
不可变对象:一旦创建,其内容就不能被修改。常见的不可变对象包括整数、浮点数、字符串和元组。
s = "Hello" s[0] = 'h' # TypeError: 'str' object does not support item assignment
-
可变对象:创建后,其内容可以被修改。常见的可变对象包括列表、字典和集合。
lst = [1, 2, 3] lst.append(4) # 修改列表内容 print(lst) # 输出 [1, 2, 3, 4]
三、浅拷贝与深拷贝
由于 Python 中的赋值操作只是让变量名指向同一个对象,有时我们需要创建对象的副本,以便独立修改它们。这时可以使用拷贝操作。Python 提供了浅拷贝和深拷贝两种方式。
-
浅拷贝:只复制对象本身和对象中的直接引用,而不复制嵌套的对象。可以使用
copy
模块的copy()
方法来进行浅拷贝。import copy original = [1, 2, [3, 4]] shallow_copy = copy.copy(original) shallow_copy[2][0] = 'X' print(original) # 输出 [1, 2, ['X', 4]],因为浅拷贝没有复制嵌套列表 print(shallow_copy) # 输出 [1, 2, ['X', 4]]
-
深拷贝:复制对象本身以及对象中的所有嵌套对象。可以使用
copy
模块的deepcopy()
方法来进行深拷贝。import copy original = [1, 2, [3, 4]] deep_copy = copy.deepcopy(original) deep_copy[2][0] = 'Y' print(original) # 输出 [1, 2, [3, 4]],因为深拷贝复制了嵌套列表 print(deep_copy) # 输出 [1, 2, ['Y', 4]]
总结
- 赋值:使用等号
=
将值或对象绑定到变量名,变量名只是对象的引用。 - 可变对象:内容可以被修改,如列表、字典和集合。
- 不可变对象:内容不能被修改,如整数、浮点数、字符串和元组。
- 浅拷贝:只复制对象本身和直接引用,不复制嵌套对象,使用
copy.copy()
。 - 深拷贝:复制对象本身以及所有嵌套对象,使用
copy.deepcopy()
。
理解这些基本概念对于编写高效、可维护的 Python 代码至关重要。希望这篇文章能帮助你更好地掌握 Python 的赋值、深浅拷贝以及可变与不可变对象。
标签:Python,对象,print,拷贝,copy,赋值 From: https://blog.csdn.net/2301_79727522/article/details/143676613