如何把[1, 5, 6, [2, 7, [3, [4, 5, 6]]]]变成[1, 5, 6, 2, 7, 3, 4, 5, 6]?
思考:
-- for循环每次都遍历列表一层
-- 把取出的单个值加入到新的列表中
-- 把取出来的嵌套列表变成新的遍历列表,就需要在for循环外嵌套一个while循环
-- 当取到最里面的列表嵌套时候,对最后一个值进行处理
#!/usr/bin/python3
__author__ = 'beimenchuixue'
__blog__ = 'http://www.cnblogs.com/2bjiujiu/'
def change_l(raw_l):
"""这个函数处理列表比较特殊,必须满足每层列表中最后一个值为嵌套列表"""
median_l = raw_l # 中间列表
new_l = [] # 结果列表
count = 0 # 循环计数统计循环次数和列表长度比较的值
while True:
try:
for value in median_l: # 每次for循环取出一个值
count += 1
if count < len(median_l): # 如果计算小于列表长度,说明没有取出最后的嵌套列表
new_l.append(value)
elif count == len(median_l): # 当计数长度等于列表长度,取出二层嵌套列表
median_l = value # 每次指向每一层最后的嵌套列表
cou