在列表中加入元组

时间:2012-07-07 08:44:21

标签: python

我想加入列表中的一组元组。

例如,

[(1, 2, 3), (1, 2, 4), (1, 2, 5)]

会变成

[123, 124, 125] 

(or ['123', '124', '125'] if it must become a string)

我不知道如何做到这一点,搜索几乎没有用处。

我该怎么做?

3 个答案:

答案 0 :(得分:3)

>>> bs = [(1, 2, 3), (1, 2, 4), (1, 2, 5)]

>>> ["".join(map(str, b)) for b in bs]
['123', '124', '125']

如果结果必须为数字

,请使用int()进行转换

答案 1 :(得分:3)

使用此包装器reduce将处理任何非零长度的元组:

>>> combinedigits = lambda seq : reduce(lambda a,b:a*10+b, seq)
>>> combinedigits((1,2,3))
123

使用map将每个元组传递给组合函数:

>>> data = [(1, 2, 3), (1, 2, 4), (1, 2, 5), (1,2,3,4,5,6,7,9)]
>>> map(combinedigits, data)
[123, 124, 125, 12345679]

答案 2 :(得分:2)

你可以试试这个:

>>> [int(''.join(str(v) for v in val)) for val in [(1, 2, 3), (1, 2, 4), (1, 2, 5)]]
[123, 124, 125]
>>> 

请注意,如果您想将它们作为字符串,则无需将它们转换为int