2015-04-06 106 views
-3

名單我有Python的 - 轉換元組列表的INT

x = [[1], [2, 3], [1, (3, 5)], [(3, 9), 7, 5]] 

,我想

x = [[1], [2, 3], [1, 3, 5], [3, 9, 7, 5]] 

我怎樣才能做到這一點?

+2

請分享您的嘗試以達到預期的效果。 – 2015-04-06 13:53:32

回答

1

您可以通過一系列的for循環來實現這一點。

>>> x = [[1], [2, 3], [1, (3, 5)], [(3, 9), 7, 5]] 
>>> l = [] 
>>> for i in x: 
     m = [] 
     for j in i: 
      if isinstance(j, tuple): 
       m.extend(j) 
      else: 
       m.append(j) 
     l.append(m) 


>>> l 
[[1], [2, 3], [1, 3, 5], [3, 9, 7, 5]] 
+0

@davidism thanks .. done ... – 2015-04-06 14:16:20

+0

謝謝,但我想要一個解決方案,因爲我可以有[[1],[2,((5,6),1)]],結果必須是[ [1],[2,5,6,1]](所以如何讓你的解決方案在遞歸形式)? – krm90 2015-04-08 11:43:45

-1

這是一個非常沮喪的方法。把它看作是一個宣言,反對放置大量的lambda表達式,映射,減少在列表解析中對初學者問題的回答。

>>> x = [[1], [2, 3], [1, (3, 5)], [(3, 9), 7, 5]] 
>>> eval(str(x).replace('(', '').replace(')', '')) 
[[1], [2, 3], [1, 3, 5], [3, 9, 7, 5]]