Python 如何连接元组并将其放入单个项列表中?

Python 如何连接元组并将其放入单个项列表中?,python,tuples,Python,Tuples,在Python中,如何将列表中的不同元组连接到列表中的单个元组 现行表格: [('1st',), ('2nd',), ('3rd',), ('4th',)] 所需表格: [('1st', '2nd', '3rd', '4th')] 简单解决方案: tups = [('1st',), ('2nd',), ('3rd',), ('4th',)] result = () for t in tups: result += t # [('1st', '2nd', '3rd', '4th')

在Python中,如何将列表中的不同元组连接到列表中的单个元组

现行表格:

[('1st',), ('2nd',), ('3rd',), ('4th',)]
所需表格:

[('1st', '2nd', '3rd', '4th')]
简单解决方案:

tups = [('1st',), ('2nd',), ('3rd',), ('4th',)]

result = ()
for t in tups:
    result += t

# [('1st', '2nd', '3rd', '4th')]
print([result])

看起来这样就可以了:

import itertools
tuples = [('1st',), ('2nd',), ('3rd',), ('4th',)]
[tuple(itertools.chain.from_iterable(tuples))]

您要做的是“展平”元组列表。最简单、最具python风格的方法是简单地使用(嵌套)理解:

tups = [('1st',), ('2nd',), ('3rd',), ('4th',)]

tuple(item for tup in tups for item in tup)
结果:

('1st', '2nd', '3rd', '4th')
如果确实需要,可以将结果元组包装到列表中

编辑:

我也喜欢s,它基本上是将列向量转换为行向量:

list(zip(*tups))
另见:

这里还有一个-只是为了好玩:

[tuple([' '.join(tup) for tup in tups])]

[tuple([internal\u tuple[0]表示tuple列表中的internal\u tuple])
其中
list\u-of-tuple
是您发布的元组列表。
sum(your\u-list,())
您可以选择在其周围放置
[]
。@wjandrea我个人认为这是该问题的重复;除了使用
元组
构造函数(可能会替代
列表
构造函数的等效用法),这里的每一种技术都适用于本例中的小输入,这很好,但这是对
总和
的滥用;这是一个Schlemiel-the-Painter的算法,反复连接越来越大的
元组。将
O(n)
操作转换为
O(n²)
操作。请回答您的问题并添加您自己的尝试。
''有什么问题。加入(tup)
?这不是问题的一部分,可能会导致具有多个项或不包含所有字符串的元组出现意外行为。@wjandrea我不知道您的问题是什么。它将预期输出获取到OP的输入,但使用不同的方法。您可能不喜欢它,但向下投票似乎有点过分。在这种情况下,这是可行的,但如果输入元组有多个元素,它的行为将完全不同:
l=[('1st',0),('2nd',1),('3rd',2),('4th',3)]
[('1st',2nd',3rd',(0,1,2,3)]
@wjandrea这就是转置的工作原理,如果可能有更多列,可以使用
[:1]
[tuple([' '.join(tup) for tup in tups])]