python学习——021列表里复制和引用的区别

liftword2个月前 (04-23)技术文章27

Python 里列表复制和列表引用的区别,下面通过示例来详细分析:

列表复制

list_a = ['a', 'b', 'c']
list_b = list_a[:]  # 创建新列表
list_a.append('d')
list_b.append('e')
print(f"列表复制示例: list_a = {list_a}, list_b = {list_b}")


  • list_b = list_a[:]:借助切片操作 [:] 复制 list_a 内容,创建了一个新列表 list_b。这意味着 list_b 和 list_a 指向不同的内存地址,它们是相互独立的列表。
  • list_a.append('d'):在 list_a 末尾添加元素 'd',不会对 list_b 造成影响。
  • list_b.append('e'):在 list_b 末尾添加元素 'e',不会对 list_a 造成影响。
  • 最终输出为 list_a = ['a', 'b', 'c', 'd'], list_b = ['a', 'b', 'c', 'e']。

列表引用

list_a = ['a', 'b', 'c']
list_b = list_a  # 引用同一列表
list_a.append('d')
list_b.append('e')
print(f"列表引用示例: list_a = {list_a}, list_b = {list_b}")
  • list_b = list_a:list_b 只是 list_a 的一个引用,它们指向同一个内存地址,也就是同一个列表对象。
  • list_a.append('d'):在 list_a 末尾添加元素 'd',由于 list_b 和 list_a 指向同一个列表,所以 list_b 也会发生变化。
  • list_b.append('e'):在 list_b 末尾添加元素 'e',同样 list_a 也会改变。
  • 最终输出为 list_a = ['a', 'b', 'c', 'd', 'e'], list_b = ['a', 'b', 'c', 'd', 'e']。

使用场景建议

  • 列表复制:当你要对列表进行修改,又不想影响原始列表时,可采用列表复制。例如,对列表进行排序、筛选等操作,同时保留原始列表。
  • 列表引用:当你需要多个变量指向同一个列表,并且对其中一个变量的修改会反映到其他变量上时,可使用列表引用。例如,多个函数需要共享同一个列表对象。

相关文章

python入门012:复制列表

一、复制列表复制列表即根据既有列表创建新的列表。1、切片复制我们可以通过创建一个包含原列表所有元素的切片,从而实现复制列表。方法是,切片区间同时省略元素的起始索引和终止索引,即[:],也就是创建一个初...

Python目录与文件操作教程

大家好,我是ICodeWR。今天要记录的是 如何使用Python进行常见的目录和文件操作。Python提供了强大的内置模块来处理文件和目录操作。1. 基本模块介绍Python中主要使用以下模块进行文件...

Python缩进规范详解与最佳实践

Python 的缩进规则是强制性的语法要求,绝对不能乱缩进!作为一门用缩进表示代码块的语言,Python 的缩进错误会导致程序直接崩溃。以下是关于缩进规范的全面解析:一、Python 缩进的底层逻辑代...

碎片时间学Python-16抓取资源链接

前情回顾前面章节,我们通过抓取电影榜单数据,获取到了电影名称的列表,这些数据我们该怎么用?所以我们梳理了手动搜索单个资源时的流程:我们会将电影名称作为查询条件,在资源网站中进行搜索如果在搜索结果页面有...

基于标准文件夹中各文件的名称复制另一文件夹的同名文件:Python

本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件的名称,从另一个文件夹中找到与这一文件夹中文件同名的文件,并将找到的同名文件复制到第三个文件夹中的方法。...