Python 从入门到实战6(二维列表)

我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

之前的文章我们通过举例学习了python 中列表的相关操作,但是操作的列表都是普通列表,也可以说是一维的。今天详细讲述二维列表相关的操作,也是经常使用到的。

1、二维列表简介

在python中列表中的元素也可以是列表,因此也支持二维列表。

二维列表类似学生们军训排队的队列:

|----|----|----|----|----|
| 00 | 01 | 02 | 03 | 04 |
| 10 | 11 | 12 | 13 | 14 |
| 20 | 21 | 22 | 23 | 24 |
| 30 | 31 | 32 | 33 | 34 |

如上面的列表4行5列,

可以写成列表\[00,01,02,03,04,10,11,12,13,14,20,21,22,23,24,30,31,32,33,34]

从外部来看,外面第一层列表中的元素个数就是行数,里面嵌套的一层列表的个数为列数。

类似其他语言二维数组,如arr4,5 代表行数为4,列数为5

2、直接定义二维列表

创建二维列表的第一种方式,直接定义二维列表。参考如下:

创建二维列表时,使用的语法:

Listname =[

元素11,元素12,元素13,...,元素1n,

元素21,元素22,元素23,...,元素2n,

....

元素n1,元素n2,元素n3,...,元素nn

]

参数说明:

Listname:表示生成的列表名称

元素11,元素12,元素13,...,元素1n:表示二维列表的第一行的元素

元素21,元素22,元素23,...,元素2n:表示二维列表的第二行的元素

......

元素n1,元素n2,元素n3,...,元素nn:表示二维列表的第n行的元素

例如我们来定义员工的信息如:staff_info = \['ID001','张三','男',25,'A',

'ID002','李四','男',35,'B',

'ID003','王五','女',45,'C',

'ID004','刘柳','女',55,'C'

]

print(staff_info)

执行输出结果如下:

3、使用嵌套的for循环生成二维列表

举个小栗子:

#使用for循环创建二维列表

lists_num =\[\]

for i in range(4): #对应二维列表的行数

lists_num.append(\[\]) #在空列表中添加一个空列表

for j in range(5):

lists_numi.append(j) #在内层的列表中添加元素,j分别取range(5)的数字

print(lists_num)

4、使用列表推导式创建二维列表

列表推导式创建二维列表的方法:

Listname = \[j for j in range(4) for i in range(3)] 创建列为4列,行为3行的二维列表

#使用列表推导式创建二维列表

list_get = \[j for j in range(4) for i in range(3)] #3行4列的列表

print(list_get)

若是要访问其中的元素:arr下标1下标2

下标1指的是行

下标2指的是列

举个小栗子:使用二维列表输出一首诗

#应用二维列表的方法来输出这首诗,思路先将字符串放到列表中

str1 = '白日依山尽'

str2 = '黄河入海流'

str3 = '欲穷千里目'

str4 = '更上一层楼'

poem_list = list(str1),list(str2),list(str3),list(str4)

print(" "+"登鹳雀楼") #展示诗题

for i in range(4): #列表为4行

for j in range(5): #每行5个字,为5列

print(poem_listij) #打印出文字

这样我们执行的结果如下:每个字展示为一行了,因为print默认是换行的。

这里我们是每隔5个元素换一次行,就需要做一个判断。

修改如下,下面黄色部分的判断:

#应用二维列表的方法来输出这首诗,思路先将字符串放到列表中

str1 = '白日依山尽'

str2 = '黄河入海流'

str3 = '欲穷千里目'

str4 = '更上一层楼'

poem_list = list(str1),list(str2),list(str3),list(str4)

print(" "+"登鹳雀楼") #展示诗题

for i in range(4): #列表为4行

for j in range(5): #每行5个字,为5列

if j==4:
print(poem_listij) #打印出文字,并且换行
else:
print(poem_listij,end='') #不是第5列的文字不换行,结尾为空

输出结果:

今天先写到这里了,每天进步一点点。今天你加油了吗!

相关推荐
东莞市云毅网络有限公司2 小时前
AI 引用句逐条回指原文:让回答可回溯的校验实现
python·数据清洗·rag·企业知识库·文档解析
Sarvartha3 小时前
final 关键字
java·开发语言
数字融合4 小时前
透明化视频三维矿山井下照明重建技术
人工智能·python·数码相机
yi0114 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
程序员Sunday4 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
zhangzeyuaaa5 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
Marst Code5 小时前
上位机开发日记 · 第 2 篇 · 架构先行:六层分层与边界
python
李日华大战鸡红6 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
谢亮_vipxieliang6 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
思无邪666 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能