App Inventor 2 列表积木完全指南:从入门到精通,一篇搞定数据存储

App Inventor 2 列表积木完全指南:从入门到精通,一篇搞定数据存储 做 App 的时候你一定会遇到这样一个问题数据太多了变量根本管不过来。比如一个购物清单有 20 样商品难道要建 20 个变量一个用户通讯录有 100 条记录难道要写 100 个变量当然不用。列表Lists就是帮你批量管理同类数据的利器。今天这篇文章我会把 App Inventor 2 中所有列表积木的用法掰开揉碎讲清楚从基础创建到高级函数式操作看完就能上手用。一、列表是什么为什么如此重要列表本质上是一个有序的数据集合。你可以把它想象成一排带编号的抽屉每个抽屉里放一个数据项编号从1开始注意不是从 0 开始。和普通变量只能存一个值不同一个列表可以存放任意数量的数据项而且支持混合类型——你可以在同一个列表里放文字、数字、布尔值甚至嵌套另一个列表。这种灵活性让列表成为 App Inventor 2 中最核心的数据结构。二、基础操作创建与添加1. 创建空列表使用创建空列表积木初始化一个没有任何元素的列表。通常搭配变量使用设置 global myList [ 创建空列表 ]这是最常见的初始化方式先创建空列表再在程序运行过程中动态添加数据。2. 创建列表使用创建列表积木可以直接给定初始值。点击蓝色齿轮可以新增更多列表项槽位这是一个块扩展Mutator特性。设置 global colors [ 创建列表: 红 绿 蓝 ]你甚至可以创建混合类型的列表类似 Python 的元组 Tuple比如设置 global userInfo [ 创建列表: 张三 25 true ]这里依次存放了字符串姓名、数字年龄、布尔值是否会员取出来时保持原类型不变。3. 追加列表项使用追加列表项积木将新元素添加到列表末尾。同样是块扩展积木点击齿轮可以一次添加多项。追加列表项 到 global colors: 黄三、查询操作查找、判断与选取1. 检查列表是否包含某对象使用列表中是否包含积木返回布尔值true/false。⚠️ 注意如果列表包含子列表子列表的成员本身并不是外层列表的成员。例如列表[1, 2, [3, 4]]的成员是 1、2 和[3, 4]而 3 和 4 不是该列表的直接成员。2. 求列表长度求列表长度积木返回列表中的项目数一目了然。3. 列表是否为空列表是否为空返回 true/false。这在遍历前做安全检查时非常有用避免对空列表操作导致报错。4. 随机选取列表项随机选取列表项从列表中随机返回一个元素。如果列表为空会抛出异常所以务必先判空。5. 求对象在列表中的位置求对象在列表中的位置返回元素的索引值从 1 开始如果不存在则返回 0。6. 选择列表中索引值对应的列表项这是最常用的读取操作通过索引取出对应位置的元素选择列表项 列表: global colors, 索引: 2 → 返回 绿四、修改操作插入、替换与删除1. 在列表某个位置插入项在列表的位置插入将新元素插入到指定索引处原有元素自动后移。2. 替换列表中索引值对应的项替换列表中索引值对应的列表项用新值替换指定位置的旧值。3. 删除列表中某项删除列表中某项根据索引移除对应元素后续元素自动前移。五、进阶操作合并、复制与反转1. 追加整个列表将一个列表中所有项追加到另一个列表中把第二个列表的全部元素添加到第一个列表末尾。注意这不是嵌套而是合并。2. 复制列表复制列表生成列表的深拷贝包括所有子列表。这在需要保留原始列表、操作副本的场景下非常关键。避坑提示直接用赋值设置 listB listA只是引用同一个列表修改其中一个另一个也会变需要真正复制时务必使用复制列表积木。3. 列表转置列表转置返回一个新列表不改变原列表元素顺序完全颠倒。比如[1, 2, 3]转置后返回[3, 2, 1]。六、CSV 与列表互转App Inventor 2 提供了一组 CSV 相关积木方便列表与文本之间的格式转换积木功能示例列表转换为CSV行一维列表 → CSV 文本[a,b,c]→a,b,cCSV行转换为列表CSV 文本 → 一维列表a,b,c→[a,b,c]列表转换为CSV表二维列表 → CSV 多行文本每个子列表变成一行CSV表转换为列表CSV 多行文本 → 二维列表每行变成一个子列表这在处理导入导出的表格数据时特别有用。七、函数式操作Map、Filter、Reduce、Sort这是列表积木中最强大的部分灵感来源于函数式编程。1. 创建映射列表Map对列表中每个元素应用一个表达式生成全新的列表。使用变量名item引用当前元素Map: [ item × 2 ] → [1,2,3] 变为 [2,4,6]2. 创建过滤列表Filter根据布尔表达式筛选满足条件的元素Filter: [ item 2 ] → [1,2,3,4] 变为 [3,4]3. 缩减列表Reduce将列表逐步合并为单个值。首次运算用初始值和第一个元素之后用结果和下一个元素直到结束Reduce: [ result item ], 初始值: 0 → [1,2,3] 结果为 64. 排序App Inventor 2 提供了三种排序方式创建有序列表通用升序排序创建带比较器的有序列表自定义 item1 和 item2 的比较规则创建带键函数的有序列表为每个元素提取排序键后排序此外还有列表中的最小值和列表中的最大值快速获取极值。5. 截取列表Slice截取列表通过起始索引和结束索引返回子列表包含起始不包含结束和 Python 的切片概念类似。八、键值对查找在键值对中查找是一个非常实用的积木用于在「对的列表」Pair List中查找信息。键值对列表格式[[key1, value1], [key2, value2], ...]在键值对中查找 关键字: cat, 键值对列表: [[a,apple],[cat,100]], 未找到: not found → 返回 100这种模式在解析天气预报 JSON 等实际开发场景中广泛使用。九、实战案例案例 1列表遍历遍历使用控制积木中的循环有两种方式方式一从列表循环foreach—— 不需要索引时用这个最简洁方式二从范围循环for range—— 需要索引时用这个案例 2列表去重原理新建空列表逐一取出原列表元素判断是否已存在不存在才添加。原列表: [1, 2, 2, 3, 4, 4] → 去重后: [1, 2, 3, 4]案例 3清理列表直接用空列表覆盖即可简单粗暴设置 global myList [ 创建空列表 ]案例 4二维列表操作二维列表就是「列表的列表」例如[[abc,123],[xyz,456]]。操作方式和一维列表几乎一样区别在于取出的元素本身又是一个列表。这在解析 JSON 数据时极为常见。总结App Inventor 2 的列表积木覆盖了日常开发 95% 以上的数据操作需求。掌握以下要点你就能游刃有余创建空列表 / 带初始值列表 / 混合类型列表增删改查追加 / 插入 / 替换 / 删除 / 选取函数式三件套Map 映射、Filter 过滤、Reduce 缩减排序与极值三种排序 最小/最大值格式转换CSV 互转、键值对查找实用技巧复制列表防引用问题、遍历方式选择、去重方案建议先用简单的待办清单 App 练手把列表的增删改查全部跑通再尝试 Map/Filter/Reduce 这些高级操作。 相关资料 完整文档https://www.fun123.cn/reference/blocks/lists.html App Inventor 2 中文网https://www.fun123.cn觉得有用点赞收藏关注「App Inventor 2 中文网」每周分享积木编程实战技巧。