首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修改列表元素

修改列表元素
EN

Stack Overflow用户
提问于 2010-08-25 02:26:31
回答 2查看 128关注 0票数 0

如何修改下面的列表:

代码语言:javascript
运行
复制
[('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)))]

变成类似这样的东西:

代码语言:javascript
运行
复制
[('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)]

在此之前,非常感谢您。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-25 02:47:24

看起来你想扁平化作为外部列表成员的元组?

试试这个:

代码语言:javascript
运行
复制
>>> 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)]
>>> 

希望它能有所帮助:-)

票数 1
EN

Stack Overflow用户

发布于 2010-08-25 02:32:45

不是一个特定的解决方案,但是itertools库中有很多很棒的食谱:

http://docs.python.org/library/itertools.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3559729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档