首先补充一个地方,之前有个文章演示的是猜数游戏,原文链接为猜数游戏用Python应该这样写,代码中漏掉了一个break语句,也就是说,在猜对的时候输出语句print('Congratulations!')后面应增加一个break,否则会让玩家继续猜,这是不合理的。

下面的今天的内容。

有时候可能会需要这样的功能:把任意深度的嵌套列表扁平化,例如把[1, 2, [3, [4]]]和[1, [2, [3, [4]]]]都变成[1, 2, 3, 4]的形式,由于提前无法确定列表的嵌套深度,这种情况比较适合使用递归来实现。演示代码如下:

def flatList(lst):

result = []    #存放最终结果

def nested(lst):#函数嵌套定义

for item in lst:

if isinstance(item, list):

nested(item)#递归子列表

else:

result.append(item)#扁平化列表

nested(lst) #调用嵌套定义的函数

return result #返回结果

#测试

lst = [1, 2, 3, 4]

print(flatList(lst))

lst = [1, [2, 3], 4]

print(flatList(lst))

lst = [1, [2, [3, 4]]]

print(flatList(lst))

lst = [1, [2, [3, [4]]]]

print(flatList(lst))

以上几种形式的列表都将被扁平化为[1, 2, 3, 4]

温馨提示:单击文章顶部作者名字旁边浅蓝色的“Python小屋”进入公众号,关注后可以查看更多内容!

欢迎转发给您的朋友,或许这正是Ta需要的知识!

Python使用递归对任意嵌套列表进行扁平化相关推荐

  1. Python递归实现①把嵌套列表压平为一层列表②返回嵌套列表中某元素出现的个数③返回第n个斐波那契数

    一.把嵌套列表压平为一层列表 def flatten(nested_list):'''这是把嵌套列表压平为简单列表并返回的函数:参数 nested_list:一个嵌套列表'''#先定义一个空列表,用于 ...

  2. Python花式编程:多层嵌套列表扁平化

    封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 图书详情: 好消息:智慧树网APP"知到"中搜索&quo ...

  3. php n维数组扁平化,js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解...

    数组的扁平化:将多维数组变成一维数组 对于一个像这样的嵌套数组:a=[1,[2,[3,4]],5,6]我们想要把它变成一个一维数组,有下面几种方法: 方法一:递归一 function parseArr ...

  4. python如何制作一个任意列表_在Python中扁平化任意嵌套列表的最快方法是什么?...

    慕用2447696 此函数应该能够快速平整嵌套的可迭代容器,而无需使用任何递归:import collectionsdef flatten(iterable):    iterator = iter( ...

  5. 任意长度的python列表_在Python中压扁任意嵌套列表的最快方法是什么?

    这个函数应该能够在不使用任何recursion的情况下快速地压扁嵌套的可迭代容器: import collections def flatten(iterable): iterator = iter( ...

  6. 扁平化嵌套列表迭代器 [树的递归前序遍历 + 迭代前序遍历]

    递归|迭代的前序遍历 前言 一.扁平化嵌套列表迭代器 二.前序遍历(无需访问非叶节点) 1.递归实现 2.栈模拟 3.惰性栈模拟(next时再入栈) 总结 参考文献 前言 问题转换:将需求确认,结合已 ...

  7. python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解

    python列表切片和嵌套列表取值操作详解 给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中, ...

  8. Python各种推导式(列表推导式,字典推导式,集合推导式,嵌套列表推导式)

    一.列表推导式 Python官网列表推导式部分 列表推导式提供了一种创建list的简便方法.应用程序创建列表时,列表中的元素来源于其他序列.可迭代对象或创建的一个满足一定条件的序列. 基本格式: ​[ ...

  9. python嵌套列表操作方法_python中多层嵌套列表的拆分方法

    场景:有一个多层嵌套的列表如:[[23],[3,3],[22,22],1,123,[[123,a],2]] 拆分成: def splitlist(list): ''' 现有一个列表,里面元素包括 数字 ...

最新文章

  1. 客快物流大数据项目(五十二):根据数据库表及字段创建公共模块
  2. express中的bin/www文件详解
  3. HashSet、TreeSet和LinkedHashSet
  4. java bufferedimage颜色_java – BufferedImage意外地改变了颜色
  5. 变异函数 python_使用Python进行变异测试
  6. 浅谈Borg/YARN/Mesos/Torca/Corona一类系统
  7. CentOS服务器Mysql主从复制集群的搭建
  8. Mindomo Desktop for mac(思维导图软件)中文版
  9. 【HDU - 3038】How Many Answers Are Wrong 【带权并查集 - 向量偏移】
  10. RS232(串口线)转RJ45(网线)
  11. 软件工程:数据流图和结构图怎么画?
  12. IT项目管理 第三章
  13. HTML css把图片变圆,HTML+CSS:圆形和圆角图片格式
  14. 计算机数字键盘无法输入数字,键盘无法输入,键盘数字键打不出来
  15. 济宁市计算机技能大赛,【嘉职动态】2019年济宁市职业院校技能大赛嘉祥职业中专赛区圆满完成任务...
  16. python防止源码泄露_ctf常见源码泄露 - Lmg66 - 博客园
  17. 热修复——Tinker的集成与使用
  18. E22 LoRa模块透传 定点传输 WOR模式测试与MicroPython应用
  19. 这5种计算机视觉技术,刷新你的世界观
  20. 手机App-手机端QQ群文件下载失败,使用WiFi可以下载但是流量就不行

热门文章

  1. python3 mysqldb查询_python3 pymysql查询结果包含字段名
  2. notepad 没有plugin manager_和平精英巅峰赛正式开启,热度却没有象中那么高!
  3. oracle 统计文本字符串,oracle人员权限,字符串转列,统计管理详解-Oracle
  4. 计算机视觉技术测试物体距离,应用计算机视觉技术检测物体的形变
  5. html表格接收json数据,Bootstrap-table如何显示后台传过来的JSON数据?
  6. asp.net oracle 分页,asp.net教程之利用ASP实现Oracle数据记录的分页显示
  7. Oracle 11g系统自动收集统计信息的一些知识
  8. Java Annotation(注解)使用教程
  9. 基于JAVA+SpringMVC+MYSQL的便利店运营管理系统
  10. 测试用例编写(功能测试框架)