Python 元组列表的合并值

Python 元组列表的合并值,python,Python,我的任务是逐行读取大型gzip文件(>1G),然后将原始数据作为消息推送到RabbitMQ。单个字段(在本例中为同义词)的值可以放在不同的行上。因此,我逐行阅读地图,将每一行作为一条消息,然后按键缩小(在本例中为字母“a”) 我有一个这样的元组列表 a = [('ctdbase-0.1', 'disease', 'A', 'synonyms', ['A']), ('ctdbase-0.1', 'disease', 'A', 'synonyms', ['a'])] a = [('ctdbase-

我的任务是逐行读取大型gzip文件(>1G),然后将原始数据作为消息推送到RabbitMQ。单个字段(在本例中为同义词)的值可以放在不同的行上。因此,我逐行阅读地图,将每一行作为一条消息,然后按键缩小(在本例中为字母“a”)

我有一个这样的元组列表

a = [('ctdbase-0.1', 'disease', 'A', 'synonyms', ['A']), ('ctdbase-0.1', 'disease', 'A', 'synonyms', ['a'])]
a = [('ctdbase-0.1', 'disease', 'A', 'synonyms', ['A', 'a'])]
如何合并同义词的值

我期望的结果是这样的

a = [('ctdbase-0.1', 'disease', 'A', 'synonyms', ['A']), ('ctdbase-0.1', 'disease', 'A', 'synonyms', ['a'])]
a = [('ctdbase-0.1', 'disease', 'A', 'synonyms', ['A', 'a'])]
我知道我可以在Dict中做类似的事情,但我不能在这里使用Dict
非常感谢

你可以做如下事情

>>> a[0][:-1] + (sum((x[-1] for x in a), []),)
('ctdbase-0.1', 'disease', 'A', 'synonyms', ['A', 'a'])
这假设所有元组仅在最后一个元素中不同。它从第一个元组中获取前n-1个值,并将所有最后的元素列表添加到一起以创建单个列表。最后,将这些子结果连接起来


您的预期结果将我的结果包装在一个列表中,这样您就可以得到一个元素列表。我不明白为什么有必要这样做。

列表中的所有元组是否只在最后一个元素中有所不同?是的,它们确实不同@没问题。如果你把自己的一些尝试包括在内,你的问题会更好。请记住,对于下一个,请。好的,我将在以后做。我有一个任务,在一个大的gzip文件(>1G)中逐行读取,然后将原始数据作为消息推送到RabbitMQ。单个字段(在本例中为同义词)的值可以放在不同的行上。因此,我逐行将每一行映射为一条消息,然后按键(在本例中为字母“a”)缩小,我使用Spark(PySpark)完成此任务。但我的老板不再允许我使用Spark,而是允许我使用纯python。所以基本上我是在尝试应用Spark的Map Reduce:)@QSnake你可以将这些信息编辑到你的问题中,它在那里更可见。如果问题解决了,请考虑接受答案,谢谢。