我有一个像
这样的清单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']
过滤就像最外层然后是第二内层然后第三内层......依此类推。
任何机构都可以为其提供代码。 在此先感谢。
答案 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']