【python】赋值操作(=)、切片、copy()、deepcopy()经常分不清。

切片(Slicing)、copy()(浅拷贝)和deepcopy()在Python中都涉及复制操作,但复制的深度和方式有所不同。而赋值操作不涉及复制,只是改变变量与对象之间的绑定关系。本文将详细讲解这几种方式的区别。

一、赋值操作(=

  • 定义:将值或引用绑定到变量名上。
  • 特性
    1. 赋值操作不会创建值的副本,它只是将变量名与现有的值或引用关联起来。
    2. 如果赋值的值是可变对象(如列表、字典等),则变量名将引用该对象,而不是对象的副本。因此,对通过赋值操作得到的对象进行修改,将影响原始对象(如果它们引用的是同一个对象)。
    3. 如果赋值的值是不可变对象(如整数、浮点数、字符串、元组等),则赋值操作实际上是在创建这些值的引用,但由于这些值是不可变的,所以修改操作(如重新赋值)不会影响原始值。
# 原始列表  
original_list = [1, 2, 3, [4, 5]]  
  
# 赋值操作,只是将变量名与现有对象关联起来  
assigned_list = original_list  
  
# 修改原始列表中的元素  
original_list[0] = 100  
  
# 修改原始列表中嵌套列表的元素  
original_list[3][0] = 400  
  
# 输出assigne

你可能感兴趣的:(python,python,数据结构,开发语言)