引言:列表的注意事项

1 list中的浅拷贝与深拷贝

在 Python 中,列表的浅拷贝和深拷贝是两种不同的复制方法,它们在数据的引用和内存管理方面有显著差异。理解这两种拷贝方式对于避免不必要的副作用和确保数据独立性至关重要。

1.1浅拷贝(Shallow Copy)

浅拷贝创建一个新的列表对象,但新的列表中的元素是对原始列表中元素的引用。因此,浅拷贝后的列表本质上是与原列表共享数据的视图。如果原列表中的元素是可变对象,修改其中一个列表中的对象会影响到另一个列表,因为它们指向相同的内存地址。

浅拷贝的方法
  1. 使用 list() 函数

    original_list = [1, 2, [3, 4]]
    shallow_copy = list(original_list)
    
  2. 使用切片 [:]:以后记住列表切片本质上就是浅拷贝

    original_list = [1, 2, [3, 4]]
    shallow_copy = original_list[:]
    
  3. 使用 copy 模块的 copy() 函数

    import copy
    original_list = [1, 2, [3, 4]]
    shallow_copy = copy.copy(original_list)
    
浅拷贝的效果

浅拷贝后的列表 shallow_copy 和原列表 original_list 共享内部的可变对象,如嵌套列表。这意味着对这些共享的可变对象的修改会在两个列表中都反映出来。

import copy

original_list = [1, 2, [3, 4]]
shallow_copy = copy.copy(original_list)

# 修改原列表中的可变对象
original_list[2][0

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部