Python 提取2元素元组并将其转换为字符串

Python 提取2元素元组并将其转换为字符串,python,string,python-3.x,tuples,Python,String,Python 3.x,Tuples,所以我有一个这样的随机单词列表: [('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW'), ('Frenchy', 'HelloMrGumby'), ('INTENSE', 'Frenchy'), ('INTENSE', 'ComputerScienceFTW'), ('INTENSE', 'HelloMrGumby'), ('ComputerScienceFTW', 'Frenchy'), ('ComputerScienceFTW'

所以我有一个这样的随机单词列表:

[('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW'), ('Frenchy', 'HelloMrGumby'), ('INTENSE', 'Frenchy'), ('INTENSE', 'ComputerScienceFTW'), ('INTENSE', 'HelloMrGumby'), ('ComputerScienceFTW', 'Frenchy'), ('ComputerScienceFTW', 'INTENSE'), ('ComputerScienceFTW', 'HelloMrGumby'), ('HelloMrGumby', 'Frenchy'), ('HelloMrGumby', 'INTENSE'), ('HelloMrGumby', 'ComputerScienceFTW')]
[('Frenchy', 'INTENSE')] # Was this
'FrenchyINTENSE' # Now this
这是排列的产物。现在我有了这个,我希望像这样在元组中添加项:

[('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW'), ('Frenchy', 'HelloMrGumby'), ('INTENSE', 'Frenchy'), ('INTENSE', 'ComputerScienceFTW'), ('INTENSE', 'HelloMrGumby'), ('ComputerScienceFTW', 'Frenchy'), ('ComputerScienceFTW', 'INTENSE'), ('ComputerScienceFTW', 'HelloMrGumby'), ('HelloMrGumby', 'Frenchy'), ('HelloMrGumby', 'INTENSE'), ('HelloMrGumby', 'ComputerScienceFTW')]
[('Frenchy', 'INTENSE')] # Was this
'FrenchyINTENSE' # Now this

有什么方法可以优雅地完成它吗?

使用列表压缩。解包字符串的每个元组并将字符串添加到一起

>>> lst = [('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW')]
>>> [a+b for a,b in lst]
['FrenchyINTENSE', 'FrenchyComputerScienceFTW']

使用列表压缩。解包字符串的每个元组并将字符串添加到一起

>>> lst = [('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW')]
>>> [a+b for a,b in lst]
['FrenchyINTENSE', 'FrenchyComputerScienceFTW']

使用列表理解加入他们;这是最简单的:

但您也可以使用解包和直接连接:

[a + b for a, b in list_of_tuples]
join方法的优点是可以处理任意长度的序列

演示:


使用列表理解加入他们;这是最简单的:

但您也可以使用解包和直接连接:

[a + b for a, b in list_of_tuples]
join方法的优点是可以处理任意长度的序列

演示:


要获得更大的iterables和内存有效利用率,您可能需要使用itertools模块中的某些功能,如函数:

import itertools

tuples = [('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW'),]

result = itertools.starmap(lambda a, b: a + b, tuples)

当然,这也是一种优雅的方式。

对于更大的iterables和更高效的内存使用,您可能需要使用itertools模块中的某些功能,如函数:

import itertools

tuples = [('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW'),]

result = itertools.starmap(lambda a, b: a + b, tuples)
当然,这也是一种优雅的方式