当前位置: 首页 > news >正文

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]]

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

类似其他语言二维数组,如arr[4,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_num[i].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_list[i][j])    #打印出文字

这样我们执行的结果如下:每个字展示为一行了,因为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_list[i][j])    #
打印出文字,并且换行
        else:
            print(poem_list[i][j],end='')    #
不是第5列的文字不换行,结尾为空

输出结果:

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • RedisMessageListenerContainer容器初始化
  • 力扣SQL仅数据库(196~569)
  • 剪画:轻松去除图片水印的操作!
  • skywalking服务部署
  • uniapp微信小程序开发测试获取手机号码
  • 对给定数组所对应的二叉树依次完成前序,中序,后序遍历,并输出遍历结果。
  • Vue(十) 过渡动画、配置代理服务器,解决请求跨域的问题
  • 一体化智能电动窗帘:开启智能生活新时尚
  • 大二必做项目贪吃蛇超详解之下篇游戏核心逻辑实现
  • 各业务领域相关方案
  • 华为云征文|Flexus云服务X实例使用,宝塔的安装,利用宝塔安装Java、NGINX,Redis,Python,快速搭建开发环境
  • 遗传算法与深度学习实战(8)——使用遗传算法解决旅行商问题
  • 2025中国(西安)国际雷达技术及设备展览会
  • java【day03】---(Vue-Element)
  • Fastjson1.2.24(CVE-2017-18349)分析
  • [译]Python中的类属性与实例属性的区别
  • 【个人向】《HTTP图解》阅后小结
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • CSS 专业技巧
  • Cumulo 的 ClojureScript 模块已经成型
  • Javascript Math对象和Date对象常用方法详解
  • Java到底能干嘛?
  • js学习笔记
  • laravel with 查询列表限制条数
  • Laravel核心解读--Facades
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Xmanager 远程桌面 CentOS 7
  • 百度地图API标注+时间轴组件
  • 力扣(LeetCode)56
  • 目录与文件属性:编写ls
  • 如何编写一个可升级的智能合约
  • 如何在 Tornado 中实现 Middleware
  • 为什么要用IPython/Jupyter?
  • 原生 js 实现移动端 Touch 滑动反弹
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • #### go map 底层结构 ####
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (3)(3.5) 遥测无线电区域条例
  • (Java入门)学生管理系统
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (安卓)跳转应用市场APP详情页的方式
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)斐波那契Fabonacci函数
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (六)DockerCompose安装与配置
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • ***php进行支付宝开发中return_url和notify_url的区别分析