2010-08-24 146 views
0

如何修改下面的列表:修改列表元素

[('AAA', '1-1', 1, (1.11, (2.22, 3.33))), ('BBB', '2-2', 2, (4.44, (5.55, 6.66))), ('CCC', '3-3', 3, (7, (8, 9)))] 

弄成这个样子:

[('AAA', '1-1', 1, 1.11, 2.22, 3.33), ('BBB', '2-2', 2, 4.44, 5.55, 6.66), ('CCC', '3-3', 3, 7, 8, 9)] 

提前非常感谢。

+3

那你试试?请张贴一些代码,显示(1)“修改”是什么,以及(2)你试图达到这个目的。 – 2010-08-24 18:28:32

+1

Duplicate:http://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists-in-python? – cji 2010-08-24 18:32:41

+0

这是一个例子,但是你能否给出一般的描述为什么以及如何修改列表中的元组?例如。 _对于列表中的元素元组,它应该转换/“扁平化”包含在_中的任何元组。我__描述了你所展示的内容,但我无法确定。 – mctylr 2010-08-24 18:33:33

回答

1

看起来要扁平化是外部列表的成员的元组?

试试这个:

>>> def flatten(lst): 
    return sum(([x] if not isinstance(x, (list, tuple)) else flatten(x) 
      for x in lst), []) 

>>> def modify(lst): 
    return [tuple(flatten(x)) for x in lst] 

>>> x = [('AAA', '1-1', 1, (1.11, (2.22, 3.33))), ('BBB', '2-2', 2, (4.44, (5.55, 6.66))), ('CCC', '3-3', 3, (7, (8, 9)))] 
>>> modify(x) 
[('AAA', '1-1', 1, 1.11, 2.22, 3.33), ('BBB', '2-2', 2, 4.44, 5.55, 6.66), ('CCC', '3-3', 3, 7, 8, 9)] 
>>> 

希望它可以帮助:-)