python多维list创建(避免重复引用)

简介: python多维list创建(避免重复引用)

python多维list创建(避免重复引用)

二维list生成

list_a=[[] for n in range(3)]
list_a

输出:[[], [], []]

对其中一个进行修改

list_a[1]=3
list_a

输出:[[], 3, []]

这样不会改变其它位置的元素

三维list生成

错误用法

list_a=[[] for n in range(3)]
list_b=[list_a for n in range(3)]
list_b

这样表面上输出的是正确的
[[[], [], []], [[], [], []], [[], [], []]]

但是当你修改一个值时,其它相同位置的值也会被修改,像这样

list_b[1][1]=2
list_b

输出的其实是这个
[[[], 2, []], [[], 2, []], [[], 2, []]]

可以看到,并不是我们想要的修改结果,因为这种创建方式(list_b=[list_a for n in range(3)])其实是一种引用,list_b里有三个引用,都指向同一个list_a,所以当你修改其中一个时,对另外两个也会同样会变化。

正确用法

list_b=[[[] for m in range(3)] for n in range(3)]
相关文章
|
3天前
|
Python
Python量化炒股的获取数据函数— get_billboard_list()
Python量化炒股的获取数据函数— get_billboard_list()
|
2月前
|
Python
Python多维列表(元组)合并成一维形式
Python多维列表(元组)合并成一维形式
16 2
|
2月前
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
38 7
|
2月前
|
SQL 机器学习/深度学习 算法
【python】python指南(五):静态类型注解之List
【python】python指南(五):静态类型注解之List
26 0
【python】python指南(五):静态类型注解之List
|
2月前
|
测试技术 索引 Python
Python接口自动化测试框架(基础篇)-- 常用数据类型list&set()
本文介绍了Python中list和set两种数据类型的使用,包括它们的创建、取值、增删改查操作、排序以及内置函数的使用,还探讨了list的比较函数和set的快速去重功能。
20 0
|
3月前
|
Python
|
3月前
|
资源调度 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python UDF(User-Defined Function)来引用第三方模块
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
JSON 算法 算法框架/工具
【python】python指南(十二):Json与dict、list互相转换
【python】python指南(十二):Json与dict、list互相转换
17 0
|
3月前
|
存储 缓存 Python
Python中的列表(List)和元组(Tuple)是两种重要的数据结构
【7月更文挑战第12天】Python中的列表(List)和元组(Tuple)是两种重要的数据结构
39 1
|
3月前
|
存储 索引 Python
【Python】已解决:IndexError: list index out of range
【Python】已解决:IndexError: list index out of range
229 1
下一篇
无影云桌面