python教程:二维列表(list)初始化

简介: python教程:二维列表(list)初始化

当我们使用python做数据的时候,经常会遇到需要初始化一个二维列表,然后对列表的每一个子项目(我们这里假设也是列表)进行操作。

在初始化的时候有一个坑,在做题目的时候卡住好久,根本找不到解决的方法。后来才发现是二维列表初始化的问题。

首先,如果我们需要初始化一个一维列表的时候

In [1]:a = [0] * 5
In [2]:a
Out[2]: [0, 0, 0, 0, 0]

二维列表的初始化可以这样做:

In [3]:b = [[0] * 5] * 5
In [4]:b
Out[4]: 
[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]

不过这样有一个很大的问题:这样操作的意思实际上是对于[0] * 5的一维列表复制了5次。也就是说,当我更改其中的任意一个的时候,其实是对b列表中的5个子列表全部修改了。

In [5]:b[0][0]='这个方法不行'
In [6]:b
Out[6]: 
[['这个方法不行', 0, 0, 0, 0],
 ['这个方法不行', 0, 0, 0, 0],
 ['这个方法不行', 0, 0, 0, 0],
 ['这个方法不行', 0, 0, 0, 0],
 ['这个方法不行', 0, 0, 0, 0]]

为了解决这个问题,推荐采用以下方法:

#Python学习交流群:711312441
In [7]:c = [[0] * 5 for _ in range(5)]
In [8]:c[0][0]='这个方法行'
In [9]:c
Out[9]: 
[['这个方法行', 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]
相关文章
|
23天前
|
JavaScript 前端开发
构建一个待办事项列表(To-Do List)应用程序
构建一个待办事项列表(To-Do List)应用程序
|
2月前
|
JSON C语言 C++
【Python 基础教程 26】Python3标准库全面入门教程:一步步带你深入理解与应用
【Python 基础教程 26】Python3标准库全面入门教程:一步步带你深入理解与应用
69 1
|
2天前
|
XML 存储 JavaScript
DOM 节点列表(Node List)
XML DOM允许访问XML文档的每个节点,提供三种访问方法:getElementsByTagName()、循环遍历和导航节点关系。getElementsByTagName()返回一个节点列表,类似于数组,可用于获取特定标签名的节点。例如,加载"books.xml"后,`xmlDoc.getElementsByTagName("title")`会获取所有<title>元素,存储在变量x中。通过索引如x[2]可访问第三个<title>元素,注意索引从0开始。后续章节将进一步探讨节点列表(Node List)。
|
2天前
|
XML JavaScript 数据格式
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的长度,例如在XML文档中,通过`getElementsByTagName()`获取的所有`<title>`元素的数量。可以遍历这个列表,如示例所示,使用`for`循环访问并输出每个节点的文本值。在提供的实例中,代码加载"books.xml",然后获取并打印所有<title>元素的子节点值。
|
5天前
|
Linux Python Windows
Python更换国内pip源详细教程
Python更换国内pip源详细教程
|
5天前
|
Linux Python Windows
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
|
10天前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结
|
10天前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结
|
11天前
|
存储 索引 Python
多数pythoneer只知有列表list却不知道python也有array数组
多数pythoneer只知有列表list却不知道python也有array数组
17 0
|
15天前
四种解决”Arg list too long”参数列表过长的办法
这些方法都可以帮助你避免因参数列表过长而导致的错误。选择方法取决于具体情况和需求。
12 0