在Python中,在一个列表中组合每两个元组
在元组列表中,我试图将每个连续的元组对转换为其和 例如:在Python中,在一个列表中组合每两个元组,python,Python,在元组列表中,我试图将每个连续的元组对转换为其和 例如: [(t1, ), (t2, ), (t3, ), (t4, )] --> [(t1, t2) + (t3, t4)] 如何做到这一点 例如: a = [(119, 'Bob', 1L, 1L), (116, 'Twilight Sparkle', 1L, 1L), (117, 'Fluttershy', 0L, 1L), (118, 'Applejack', 0L, 1L)] 那么输出应该是: [(119, 'Bob',
[(t1, ), (t2, ), (t3, ), (t4, )] --> [(t1, t2) + (t3, t4)]
如何做到这一点
例如:
a = [(119, 'Bob', 1L, 1L), (116, 'Twilight Sparkle', 1L, 1L), (117, 'Fluttershy', 0L, 1L), (118, 'Applejack', 0L, 1L)]
那么输出应该是:
[(119, 'Bob', 1L, 1L, 116, 'Twilight Sparkle', 1L, 1L), (117, 'Fluttershy', 0L, 1L, 118, 'Applejack', 0L, 1L)]
假设列表是:
a = [(1, 2), (3, 4), (5, 6), (7, 8)]
然后使用(Python2.7)
您可以使用:
>> [aa + bb for (aa, bb) in itertools.izip(a[::2], a[1::2])]
[(1, 2, 3, 4), (5, 6, 7, 8)]
这似乎没有什么不同。我的列表被定义为结果。所以我在itertools.izip(result[::2],result[1::2])中尝试了[aa+bb for(aa,bb)]。这是正确的方法吗?是的,我怀疑你的列表根本不是元组。请参见“编辑到问题”。@KishB87查看对问题的更改。在Python对象周围放置括号并不能使其成为元组:
(2)
不是元组,但(2,)
是元组。result=[(119,'Bob',1L,1L),(116,'Twilight Sparkle',1L,1L),(117,'flattershy',0L,1L),(118,'Applejack',0L,1L)]
这是我现在的输出。这些不是元组吗?result=[(119,'Bob',1L,1L,116,'twillight Sparkle',1L,1L),(117,'flattershy',0L,1L,118,'Applejack',0L,1L)]
将是所需的输出。
>> [aa + bb for (aa, bb) in itertools.izip(a[::2], a[1::2])]
[(1, 2, 3, 4), (5, 6, 7, 8)]