展平元组列表的列表

时间:2017-03-07 09:13:09

标签: python

我已经阅读了几个关于问题的帖子"如何压缩列表列表...."。我提出了这个解决方案:

points = [[[(6,3)],[]],[[],[]]] 
from itertools import chain
list(chain.from_iterable(points))

但是我的列表看起来有时像这样:

[[[(6,3)],[]],[[],[]]] 

不确定它是否正确,但我希望你理解。

关键是leaf元素是一个元组,当调用上面的代码时,它也会删除元组并返回[6,3]

那么我该怎么办才能获得[(6,3)]

2 个答案:

答案 0 :(得分:1)

这个怎么样,

lists = [[[(6,3)],[]],[[],[]]] 

r = [t for sublist in lists for l in sublist for t in l]

print(r)
# [(6, 3)]

答案 1 :(得分:0)

也许它不是最好的解决方案,但它运作良好:

def flat(array):
    result = []
    for i in range(len(array)):
        if type(array[i]) == list:
            for j in flat(array[i]):
                result.append(j)
        else:
            result.append(array[i])
    return result     

print flat([[[(6,3)],[]],[[],[]]] ) 

结果是:

>>> 
[(6, 3)]
>>>