python:递归检查列表项是列表还是单个项

时间:2015-12-29 06:03:06

标签: python list

我有一个像

这样的清单
lst = [[1,[2,[3,4,[7,8],5,6]]],[['a',['b',['c','d',['g','h'],'e','f']]]]]

如果当前列表项是列表或单个项(在本例中为int / str),我需要每次验证

如果找到一个列表再次迭代该列表,如果找到它作为单个元素将其放入新列表中。

所以最后我需要2个特别顺序的新列表

new1 = [1,2,3,4,5,6,7,8]
new2 = ['a','b','c','d','e','f','g','h']

过滤就像最外层然后是第二内层然后第三内层......依此类推。

任何机构都可以为其提供代码。 在此先感谢。

1 个答案:

答案 0 :(得分:1)

lst = [[1,[2,[3,4,[7,8],5,6]]],[['a',['b',['c','d',['g','h'],'e','f']]]]]

def rec(x):
    if isinstance(x,list):
        for k in x:
            rec(k)
    else:
        rec.y.append(x)

rec.y=[]
for i in lst:
    rec(i)
    print rec.y
    rec.y=[]

输出:[1, 2, 3, 4, 7, 8, 5, 6] ['a', 'b', 'c', 'd', 'g', 'h', 'e', 'f']