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

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

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

当我们使用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]]
相关文章
|
4天前
|
索引 Python
Python 中寻找列表最大值位置的方法
本文介绍了Python中找列表最大值及其位置的三种方法:1) 使用内置`max()`和`index()`函数;2) 通过循环遍历;3) 利用`enumerate()`函数和生成器表达式。每种方法均附有示例代码,其中`enumerate()`方法在保证效率的同时代码更简洁。
29 2
|
4天前
|
存储 运维 数据挖掘
Python列表中每个元素前面连续重复次数的数列统计
Python列表中每个元素前面连续重复次数的数列统计
12 1
|
4天前
|
存储 JSON 数据库
Python中列表数据的保存与读取:以txt文件为例
Python中列表数据的保存与读取:以txt文件为例
18 2
|
1天前
|
Python
两个list集合合并成一个python教程 - 蓝易云
在这两种方法中,加号会创建一个新的列表,而extend方法则会在原地修改列表。
5 0
|
1天前
|
XML JavaScript 数据格式
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的元素数量。在示例中,加载"books.xml"后,通过getElementsByTagName("title")获取标题节点列表,然后使用`for`循环遍历列表,输出每个标题的文本内容。此代码演示了如何处理XML文档中的节点集合。
|
2天前
|
数据采集 数据挖掘 Python
10个python小技巧,优雅地书写人生_python列表遍历奇数偶数
10个python小技巧,优雅地书写人生_python列表遍历奇数偶数
|
2天前
|
存储 Java Shell
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
|
2天前
|
存储 索引 Python
【python学习】列表、元组、字典、集合,秋招是不是得到处面试
【python学习】列表、元组、字典、集合,秋招是不是得到处面试
|
2天前
|
Python
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
|
4天前
|
存储 机器学习/深度学习 数据可视化
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
9 1
http://www.vxiaotou.com