-
2020-11-22 16:20:27
创建一个m行,n列的二维列表:
dp = [[0]*n for _ in range(m)]
运行结果(n = 3, m = 4):
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
注1:单下划线 _ 的含义
用作临时的变量名称 (此处的用法)
Python REPL中的一个特殊变量,它表示由解释器评估的最近一个表达式的结果。
举例:
>>> 27
27
>>>_27
>>> _+5
32
>>>_32
>>> {1:'a', 2:'b'}
{1: 'a', 2: 'b'}>>>_
{1: 'a', 2: 'b'}>>> _[3] = 'c'
>>>_
{1: 'a', 2: 'b', 3: 'c'}
无意义的变量名称
举例:
car = ('red', 'auto', 12, 3812.4)>>> color, _, _, mileage = car
此时我只需要car的颜色和里程。故另外两项可以用_代替
注2:还有一种创建二维列表的方法:
dp = [[0]*3]*4
运行结果一致,不过这种方法用的是列表的引用,也就是在赋值的时候会出现以下问题
>>> dp[0][1] = 1
>>>dp
[[0,1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0]]
更多相关内容 -
python创建与遍历List二维列表的方法
2020-12-25 20:42:49python 创建List二维列表 lists = [[] for i in range(3)] # 创建的是多行三列的二维列表 for i in range(3): lists[0].append(i) for i in range(5): lists[1].append(i) for i in range(7): lists[2].append(i... -
Python中创建二维数组
2020-12-25 10:38:18二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 ...一般Python中创建二维数组的方法是使用列表解析的方法 列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素 创建 -
Python 创建一个二维列表
2020-11-22 22:40:20 -
python如何创建二维列表?
2020-12-04 20:34:34python创建二维列表的方法:python创建二维列表的两种方法方法一:使用numpy-zeros((10,10)),生成给定长度的二维列表。方法二:使用for 循环,规避浅拷贝python创建二维列表可以通过循环的方式来创建,代码如下:...python如何创建二维列表?
python创建二维列表的方法:
python创建二维列表的两种方法
方法一:
使用numpy-zeros((10,10)),生成给定长度的二维列表。
方法二:
使用for 循环,规避浅拷贝
python创建二维列表可以通过循环的方式来创建,代码如下:
如此,就创建好了一个缺省值为0的10*10的二维列表,实现相同列表的方法还有b=[[0]*10]*10,而且判断 a==b 时,返回值为 True。但是通过此种方法建立的列表存在一定的问题,当我们令b[0][1]=1时,我们的初衷是仅仅改变列表中一项的值,但是实际却不是:
我们发现整个列表的第二列均发生了改变,这是因为[[]]*10表示的是表示10个指向这个空列表元素的引用,是一种浅拷贝,因此修改任何一个元素都会改变整个列表,所以我们需要采取第三种方式来创建二维列表:
当我们令c[0][1]=1时,仅仅改变列表中一项的值,符合我们创建二维列表的要求
-
Python教程:python中二维列表的创建、访问、应用详解
2021-11-07 15:08:34欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中二维列表的创建、访问、应用详解》。本知识点主要内容有:二维列表的概念、直接定义二维列表...在Python中,创建二维列表有以下3种常用的方法: .欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中二维列表的创建、访问、应用详解》。本知识点主要内容有:二维列表的概念、直接定义二维列表、使用嵌套的for循环创建二维列表、使用列表推导式创建二维列表、二维列表的访问、二维列表的应用。
二维列表的概念:
二维列表是将其他列表当做列表的元素放在一个列表当中,也就是列表的嵌套。
站长在线温馨提示:二维列表是多维列表的基础,未来还会出现三维列表,四维列表等多维列表。
在Python中,创建二维列表有以下3种常用的方法:
1、直接定义二维列表。
在Python中,二维列表就是包含列表的列表。即一个列表的每个元素又都是一个列表。
在创建二维列表时,我们可以直接使用列表的语法格式,进行定义:
listname = [[元素11,元素12,元素13,......,元素1n], [元素21,元素22,元素23,......,元素2n], ......, [元素n1,元素n2,元素n3,......,元素nn]]
其中的相关参数说明如下:
listname:表示要生成的列表名称。
[元素11,元素12,元素13,......,元素1n]:表示二维列表的第1行(也是一个列表)。其中元素11代表第1行第1列,元素12代表第1行第2列,以此类推,直到元素1n代表第1行第n列。
[元素21,元素22,元素23,......,元素2n]:表示二维列表的第2行(也是一个列表)。其中元素21代表第2行第1列,元素22代表第2行第2列,以此类推,直到元素2n代表第2行第n列。
[元素n1,元素n2,元素n3,......,元素nn]:表示二维列表的第n行(也是一个列表)。其中元素n1代表第n行第一列,元素n2代表第n行第2列,以此类推,直到元素nn代表第n行第n列。
例如,定义一个某中学9年级1班3位同学的语数英的成绩列表,代码如下:
cj = [['名字','语文','数学','英语'], ['张三',88,98,95], ['李四',85,99,91], ['王五',86,88,89]] print(cj)
运行上面代码,创建的二维列表如下:
[['名字', '语文', '数学', '英语'], ['张三', 88, 98, 95], ['李四', 85, 99, 91], ['王五', 86, 88, 89]] >>>
2、使用嵌套的for循环创建二维列表。
在Python中,创建二维列表,可以使用嵌套的for循环来实现,如创建一个5行5列的二维列表,可以使用下面代码:
s = [] # 创建一个空列表 for i in range(5): # 创建一个5行的列表(行) s.append([]) # 在空的列表中添加空的列表 for j in range(5): # 循环每一行的每一个元素(列) s[i].append(j) # 为内层列表添加元素 print(s) # 输出列表
运行上面的代码,创建的二维列表如下:
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]] >>>
3、使用列表推导式创建二维列表。
我们刚刚在上一个知识点《在python中的列表推导式详解》学习过列表推导式。列表推导式就是可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。
在这里我们也可以使用列表推导式来创建二维列表,并且是被推荐的方法,而且语法简单。
比如使用列表推导式的方法创建一个5行5列的二维列表,代码如下:
s = [[j for j in range(5)] for i in range(5)] print(s)
执行上面代码,创建的二维列表结果如下:
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]] >>>
4、二维列表的访问
我们在创建好二维列表以后,可以通过下列语法,对列表元素的访问:
listname[索引1][索引2]
其中,相关的参数说明为:
listname:表示列表的名称
索引1:列表中的行。索引值从0开始,即第一行是索引为0。(索引也称为下标,索引1也称为下标1)
索引2:列表中的列。索引值从0开始,即第一列是索引为0。(索引也称为下标,索引2也称为下标2)
如,定义一个二维列表,访问他的第1行,第5列,可以使用下面代码:
listname[0,4]
s = [[j for j in range(5)] for i in range(5)] # 定义一个5行5列的二维列表 print("5行5列的列表为:",s) # 输出二维列表 print("其中第1行,第5列为:",s[0][4]) # 输出第1行,第5列的元素
运行结果为:
5行5列的列表为: [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]] 其中第1行,第5列为: 4 >>>
5、二维列表的应用
使用二维列表输出不同版式的古诗《静夜思》
-- 横版 --
床前明月光
疑是地上霜
举头望明月
低头思故乡
-- 竖版 --
低举疑床
头头是前
思望地明
故明上月
乡月霜光
站长在线温馨提醒:横版是从左往右读,竖版是从右往左读的。
我们在IDLE中新建一个文件,在该文件中,定义4个字符串为《静夜思》的诗句,再定义一个二维列表,使用嵌套的for循环,将古诗以横版输出,再将二维列表进行逆序排列,最后使用嵌套的for循环,将古诗以竖版输出,代码如下:
str1 = '床前明月光' str2 = '疑是地上霜' str3 = '举头望明月' str4 = '低头思故乡' verse = [list(str1), list(str2), list(str3), list(str4)] # 定义一个二维列表 print('\n-- 横版 --\n') for i in range(4): # 循环古诗的每一行 for j in range(5): # 循环每一行的每个字(列) if j == 4: # 如果是一行中的最后一个字 print(verse[i][j]) # 换行输出 else: print(verse[i][j], end='') # 不换行输出 verse.reverse() # 对列表进行逆序排列 print('\n-- 竖版 --\n') for i in range(5): # 循环每一行的每个字(列) for j in range(4): # 循环新逆序排列后的第一行 if j == 3: # 如果是最后一行 print(verse[j][i]) # 换行输出 else: print(verse[j][i], end='') # 不换行输出
运行结果如下:
-- 横版 -- 床前明月光 疑是地上霜 举头望明月 低头思故乡 -- 竖版 -- 低举疑床 头头是前 思望地明 故明上月 乡月霜光 >>>
原理解析:
5.1、先将古诗的每一行的字符串,使用
list()
函数转换成列表。列表代码如下:[['床','前','明','月','光'], ['疑','是','地','上','霜'], ['举','头','望','明','月'], ['低','头','思','故','乡']]
5.2、列表对象的
reverse()
方法用于对列表进行逆向排序,将列表的最后一个移到第一个,倒数第二个移到第二个,以此类推。代码如下:[['低', '头', '思', '故', '乡'], ['举', '头', '望', '明', '月'], ['疑', '是', '地', '上', '霜'], ['床', '前', '明', '月', '光']]
5.3、横版是按行打印,竖版却是按列打印,按列打印如下:
低举疑床 头头是前 思望地明 故名上月 乡月霜光
看见了吧,我们把读不通顺的,按列打印的“低举疑床,头头是前,思望地明,故名上月,乡月霜光”就正是我们要的按竖排打印的诗。竖排的写法是从右往左写的。读也从右边读起,就正是我们的想要的诗了。
到此为止,本文主题《python中二维列表的创建、访问、应用详解》中的二维列表的概念、直接定义二维列表、使用嵌套的for循环创建二维列表、使用列表推导式创建二维列表、二维列表的访问、二维列表的应用。就到此讲解完毕了,还有不懂的可以留言哦!
-
Python创建二维数组
2022-04-05 19:20:55文章目录前言实际操作一维数组二维数组总结 前言 Python并没有内置的数组类型,只有tuple,list,dict,set等内置类型。所以只能通过list模拟数组。 实际操作 一维数组 a = [i + 1 for i in range(10)] # a = [1, 2,... -
Python 创建二维列表(数组矩阵),以及易错的方式
2021-01-21 22:52:14正确的方式 通过嵌套for循环,一个个添加0 n = [] for i in range(2): n.append([]) ...创建一个三个0的一位数组,将该数组复制两倍 m = [0]*3 mm = [m]*2 mm[0][0] = 2 print(mm) 输出[[2, 0, 0... -
Python 创建二维列表list
2018-12-26 10:08:49Python 创建二维列表list 1.正确使用方式: 2.误用方式: 原因:matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。 ... -
Python 二维列表
2021-12-26 13:15:50二、创建二维列表 1、追加一维列标来生成二维列标 生成一个4行3列的二维列表 row1 = [3, 4, 5] row2 = [1, 5, 9] row3 = [2, 5, 8] row4 = [7, 8, 9] matrix = [] matrix.append(row1) matrix.append(row2) matrix... -
python二维列表
2020-11-30 11:14:07方法一:使用 lambda 关键词辅助对二维列表进行排序,lambda的使用方法参考https:blog.csdn.netzjuxslarticledetails79437563假设有一个学生列表存储了学号,姓名,年龄信息:students = ,]按学号顺序排序:sorted... -
Python创建二维数组的正确姿势
2020-12-04 20:33:44↑↑↑点击上方“蓝字”...List (列表)是 Python 中最基本的数据结构。在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始。因此,我们可以使用 list[1] 来获取下标对应的值。如果我们深入下列表的... -
Python初始化二维列表
2021-12-04 18:33:23x = [[0 for i in range(10)] for j in range(20)] print(x[15][8]) 初始化20行10列。值都为0,也可以是任意表达式,比如2*pi*i/100 -
#python二维列表(有图有代码,简洁清晰明了!)
2020-11-24 19:46:48在python中创建二维列表有以下3种常用的方法 1、直接定义二维列表 例如: listname=[[元素1],[元素2],[元素3]......[元素n]] listname: 表示生成列表名称 【元素1】: 表示二维列表的第一行,也是一个列表,其中的... -
python创建全为0的二维列表遇到的坑
2020-12-09 18:39:27本来想着简单点,用列表乘法 m = n = 3 test = [[0] * m] * n print(test) 输出也看了一下,没啥问题 [[0, 0, 0], [0, 0, 0], [0, 0, 0]] m = n = 3 test = [[0] * m] * n print... -
二维列表 - Python教程 - C语言网
2020-11-24 02:39:26有接触过C或C++的可能了解数组这个概念,在Python中数组存在于第三方库中,因此在不安装第三方插件的前提下我们想要在Python中使用数组方法,就要采用二维列表这个方法。实际上列表中的元素可以是任何数据类型,我们... -
python如何创建二维数组
2021-12-12 16:50:54关于python中的二维数组,主要有list和numpy.array两种。好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的。 两者可以相互转化。下边是两者区别 数组list >>import numpy... -
Python创建一个元素都为0的列表实例
2020-11-25 20:48:37Python创建一个元素都为0的列表实例实现创建一个元素都为0的列表:l=10lis=[0]*llis输出结果:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]以上这篇Python创建一个元素都为0的列表实例就是小编分享给大家的全部内容了,希望能给... -
python创建列表和向列表添加元素的实现方法
2021-01-14 23:56:00今天的学习内容是python中的列表的相关内容。一.创建列表1.创建一个普通列表>>> tabulation1 = ['大圣','天蓬','卷帘']>>> tabulation1['大圣', '天蓬', '卷帘']>>> tabulation2 = [72,... -
Python中用NumPy创建二维数组
2020-12-24 15:52:43文章目录前言1 一维数组2 二维数组3 二维数组的分片4 数组维度的操作5 数组的组合与分隔5.1 水平组合5.2 垂直组合5.3 水平分隔5.4 垂直分隔6 数组转列表7 数组的存储和读取及分隔符7.1数组的存储7.2数组的读取总结... -
Python通过键盘输入二维列表
2022-03-07 21:16:48Python通过键盘输入二维列表 前两天刷笔试题在用python进行二维列表输入时遇到问题后进行了总结。 如输入一个nn的矩阵存储到二维列表,第一行表示输入参数n,下面为矩阵参数,以33为例: 3 1,2,3 4,5,6 7,8,9 1. 以... -
【编测编学】零基础学python_10_列表(创建数值列表 )
2020-12-18 22:01:47创建数值列表需要存储一组数字的原因有很多,例如,在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分。在数据可视化中,处理的几乎都是由数字(如温度、距离、人口数量、经度和纬度等)组成的集合... -
Python的多维空数组赋值方法
2020-09-20 15:23:30下面小编就为大家分享一篇Python的多维空数组赋值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
python 二维列表(数组)赋值问题
2018-09-11 17:36:21当我们使用arr = [[0]*5]*5 初始化一个二维数组时,会得到一个5*5的数组, In [1]: arr = [[0]*5]*5 In [2]: arr Out[2]: [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0,... -
如何在Python中创建一个指定大小的一维列表或者二维列表
2019-07-20 23:11:04#一维列表的创建: a = [None] * n # 创建一个初值为None的长度为n的列表a,None只是一种...# 二维列表的创建: a = [[0 for col in range(m)] for row in range(n)] # 创建一个n*m的二维矩阵a,每个初值都是0 ... -
python 去除二维数组/二维列表中的重复行方法
2020-12-13 07:07:42python 去除二维数组/二维列表中的重复行方法之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢?import numpy as nparr = np.array([[1, 2],[3, 4],[5, 6],[7, 8],[3, 4]... -
Python 用NumPy创建二维数组的案例
2021-04-27 03:15:01今天来学习一个新的内容—NumPy的使用1 一维数组例:用普通方法生成一维数组num = [0 for i in range(1,5)] # 创建一维数组print(num) # 打印数组print("-"*50) # 分割线num[2]=6 # 将第三个元素修改位6print(num) ... -
Python二维数组创建
2018-07-12 01:22:25Python二维数组创建 创建方法: 1. 直接创建 2. 列表生成 3. numpy创建 遇到的问题: a = [[]]*3 a[0].append(1) a[1].append(2) a[2].append(3) print(a) 输出为: [[1, 2, 3], [1, 2, 3], [1, 2, 3]... -
Python(字符串,列表,元组,字典)
2020-12-13 04:52:05列表list:方括号[ ]PS:先了解序列是Python中最基本的数据结构,Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。列表是最常用的Python数据类型list=[...