python_嵌套列表变成普通列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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_嵌套列表变成普通列表的主要内容,如果未能解决你的问题,请参考以下文章