哈罗,各位大朋友小朋友们!咱们的深夜带娃编程项目分享时间又准时上线啦。
前几期课程里,咱们带孩子玩转了基础的列表,孩子们都知道列表就像是一排长长的储物柜,里面可以整整齐齐地放上一串数字或者一堆水果名字。但昨晚带娃做练习时,娃遇到了一个大难题:
“妈妈,我想用代码做一张全班同学的期末成绩单,不仅要记录小明、莉莉、大雄的名字,还要记录他们每个人对应的语文、数学、英语成绩。这要是用以前的普通列表,我得建多少个储物柜啊?数都数晕了!”
看着娃抓耳挠腮的样子,我笑着揉了揉他的小脑袋:“傻孩子,储物柜不够用,咱们就不能在‘大柜子’里面塞‘小抽屉’吗?”
今天,咱们就用大白话带孩子们解锁Python数据结构里的一个隐藏大招——二维列表!掌握了它,复杂的数据在孩子手里就会变成整齐的“Excel表格”。
📦 什么是二维列表?就是编程界的“俄罗斯套娃”!
以前咱们学的列表是一维的,就像是一行队伍,比如 [1, 2, 3]。 而二维列表,通俗来讲就是“列表里面的元素,本身又是一个列表”。
我们可以给孩子打个生动的比方:它就像是一个大大的“俄罗斯套娃”或者“大纸箱”。你打开最外面的大箱子,里面赫然整齐地摆着几个小箱子;再打开小箱子,里面才是最终的宝贝!在数学里它有个高大上的名字叫“矩阵”,但在咱们这,它就是一张有行有列的方格纸。
📝 怎么建?手把手写出一张高逼格“成绩单”
来,直接看书上的经典案例,咱们用代码把这张成绩单画出来:
# 别眨眼,这就是二维列表的真面目!list2D = [ [0, '语文', '数学', '英语'], # 第0行:表头['小明', 95, 98, 99], # 第1行:小明的成绩['莉莉', 99, 95, 100], # 第2行:莉莉的成绩['大雄', 60, 10, 50] # 第3行:大雄的成绩]print(list2D)
💡 陪娃敲黑板:
带娃写的时候,记得提醒他两件事:最外面有一对巨大的中括号 [],把所有数据紧紧包住。
里面的每一行也是用中括号 [] 包起来的小列表,而且小列表之间必须用英文逗号 , 隔开。换行写的话,就像在敲电子表格一样清晰!
🎯 怎么用?学会用“GPS定位法”精准寻宝
把表格建好了,怎么把里面的某一个成绩单独拿出来用呢?比如:怎么用代码查到莉莉的语文成绩?
这时候,咱们要教给孩子一个绝招——双重括号索引法([行][列])! 这就像是玩“战列舰”游戏或者地图上的 GPS 定位,你得同时告诉电脑“第几行”和“第几列”。
还记得咱们 Python 的老规矩吗?数数必须从 0 开始!
所以,莉莉的语文成绩就是:list2D[2][1]!
# 咱们来精准测试一下print(list2D[0][0]) # 输出:0 (第0行第0列)print(list2D[0][2]) # 输出:'数学' (第0行第2列)print(list2D[2][1]) # 输出:99 (第2行第1列,正好是莉莉的语文分!)
昨晚娃看到屏幕上精准蹦出“99”的时候,一拍大腿说:“哇塞!这不就是代码版的‘看图找位置’吗?太好玩了!”
🚀 进阶小技巧:如何一次性搬走一整行?
有时候我们不需要看单个成绩,我们想直接把大雄的所有数据都拿出来,该怎么写呢?
这时候更简单了!我们只需要一个中括号就行。因为最外层的大箱子里面装的是小箱子,你只要告诉电脑拿第几个小箱子即可。
# 大雄在第3行,直接输入一个3print(list2D[3]) # 屏幕上就会整整齐齐打印出大雄的所有数据:['大雄', 60, 10, 50]! # 屏幕上就会整整齐齐打印出大雄的所有数据:['大雄', 60, 10, 50]!
📝 今日带娃总结
今天学的“二维列表”是孩子们从小打小闹的趣味编程走向真正数据处理的一大步。只要用“俄罗斯套娃”和“Excel表格”的形象逻辑去引导,孩子完全不会觉得枯燥和抽象。