首页 > 代码库 > python_嵌套列表变成普通列表
python_嵌套列表变成普通列表
如何把[1, 5, 6, [2, 7, [3, [4, 5, 6]]]]变成[1, 5, 6, 2, 7, 3, 4, 5, 6]?
思考:
-- for循环每次都遍历列表一层
-- 把取出的单个值加入到新的列表中
-- 把取出来的嵌套列表变成新的遍历列表,就需要在for循环外嵌套一个while循环
-- 当取到最里面的列表嵌套时候,对最后一个值进行处理
1 #!/usr/bin/python3 2 import time 3 list_1 = [1, 5, 6, [2, 7, 7, [3, [4, 5, 6]]]] # 定义一个嵌套列表 4 list_1_new = list_1 # 定义递归接收嵌套列表 5 list_2 = [] # 定义接收取出数据的空列表 6 count = 0 # 循环计数,用于循环列表长度计数 7 while True: # 开始循环 8 try: 9 for i in list_1_new: # 每次循环都打印一层 10 count += 1 11 if count < len(list_1_new): # 计算小于初始列表的长度,取出一层数据 12 list_2.append(i) 13 elif count == len(list_1_new): # 当计数长度等于初始列表长度,取出二层嵌套列表 14 list_1_new = i # 把初始列表变成取出的上面取出的嵌套列表,变成变成遍历初始列表的二层嵌套 15 count = 0 # 计算清零 16 except Exception as e: # 出现异常打印异常 17 print(e) 18 19 print(list_2) # 打印每次遍历已经添加的值 20 print(list_1_new) # 打印每次取出的嵌套列表 21 22 try: 23 len(list_1_new) # 假如最后只有一个值的时候,触发len()异常 24 except TypeError as e: 25 print(e) 26 list_2.append(list_1_new) # 把最后一个值添加进去 27 break # 把最后一个值添加进去跳出循环 28 print(list_2) # 打印最好的值
没有解决一个问题:
-- 这个问题本身很特殊,有点递归嵌套,无法解决一层有2个以上的嵌套列表
python_嵌套列表变成普通列表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。