python中多层嵌套列表的拆分方法

yipeiwu_com7年前Python基础

场景:有一个多层嵌套的列表如:[[23],[3,3],[22,22],1,123,[[123,a],2]] 拆分成:

def splitlist(list):
  '''
    现有一个列表,里面元素包括 数字,字母,列表,字典等元素,现在要将字典去掉,并将列表
    分解成字母,或数字元素如:[[1,2,3],2,3,[1,3,[12,22]],'a',12] 
    经函数处理后[1, 2, 3, 2, 3, 1, 3, 12, 22, 'a', 12]
    
  '''  
  alist = []
  a = 0
 
 
  for sublist in list:
    try: #用try来判断是列表中的元素是不是可迭代的,可以迭代的继续迭代
      for i in sublist:
        alist.append (i)
    except TypeError: #不能迭代的就是直接取出放入alist
      alist.append(sublist)
  for i in alist:
    if type(i) == type([]):#判断是否还有列表
      a =+ 1
      break
  if a==1:
    return printlist(alist) #还有列表,进行递归
  if a==0:
    return alist         
list=[[1,2,3],2,3,[1,3,[12,22,[2,3]]],'a',12,range(10)]
a = printlist(list)
print(a)   

打印结果:

[1, 2, 3, 2, 3, 1, 3, 12, 22, 2, 3, 'a', 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

分析:运用递归一层一层的去掉嵌套列表的数

以上这篇python中多层嵌套列表的拆分方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

一看就懂得Python的math模块

math模块 # 数学相关模块 import math r = math.floor(3.2) # 向下取整 print(r) r = math.ceil(4.5) # 向上取整...

celery4+django2定时任务的实现代码

网上有很多celery + django实现定时任务的教程,不过它们大多数是基于djcelery + celery3的; 或者是使用django_celery_beat配置较为繁琐的。...

Python Tkinter模块实现时钟功能应用示例

Python Tkinter模块实现时钟功能应用示例

本文实例讲述了Python Tkinter模块实现时钟功能。分享给大家供大家参考,具体如下: 本机测试效果: 完整代码: # coding=utf-8 from Tkinter i...

Python按行读取文件的简单实现方法

1:readline() file = open("sample.txt") while 1: line = file.readline() if not line:...

Python下的subprocess模块的入门指引

Python下的subprocess模块的入门指引

在熟悉了Qt的QProcess以后,再回头来看python的subprocess总算不觉得像以前那么恐怖了。 和QProcess一样,subprocess的目标是启动一个新的进程并与之进...