2017-03-07 138 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)]