2015-04-06 93 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]]