2017-03-07 139 views
0

我已经阅读了关于“如何拼合列表列表......”这个问题的几篇文章。我想出了这个解决方案:拼合元组列表列表

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

但是我的名单看起来有时是这样的:如果

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

不知道这是正确的,但我希望你能理解。

重点是叶元素是一个元组,当调用上面的代码时,它也删除元组,并且只返回[6,3]

那么我能做些什么才能得到[(6,3)]

+0

就可以得到结果像这样:'[tuple([6,3])]' –

+1

你试过这个解决方案:http://stackoverflow.com/a/40547477/1904113?因为它只会使列表变得平坦,所以这应该适合你。 – MKesper

+0

只要你发布的问题更好,你也提供了输入和输出。谢谢 –

回答

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)] 
>>> 
0

这个怎么样,

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

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

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