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)
当然,这也是一种优雅的方式