如何修改下面的列表:
[('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)]
在此之前,非常感谢您。
发布于 2010-08-25 02:47:24
看起来你想扁平化作为外部列表成员的元组?
试试这个:
>>> 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)]
>>>
希望它能有所帮助:-)
发布于 2010-08-25 02:32:45
不是一个特定的解决方案,但是itertools库中有很多很棒的食谱:
http://docs.python.org/library/itertools.html
https://stackoverflow.com/questions/3559729
复制相似问题