所以我有一个像这样的随机单词列表:
[('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
有没有办法优雅地做到这一点?
答案 0 :(得分:3)
使用列表理解来加入它们;这对str.join()
method来说最简单:
[''.join(t) for t in list_of_tuples]
但你也可以使用解包和直接连接:
[a + b for a, b in list_of_tuples]
str.join()
方法的优势在于,它适用于任意长度的序列。
演示:
>>> list_of_tuples = [('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW'), ('Frenchy', 'HelloMrGumby'), ('INTENSE', 'Frenchy'), ('INTENSE', 'ComputerScienceFTW'), ('INTENSE', 'HelloMrGumby'), ('ComputerScienceFTW', 'Frenchy'), ('ComputerScienceFTW', 'INTENSE'), ('ComputerScienceFTW', 'HelloMrGumby'), ('HelloMrGumby', 'Frenchy'), ('HelloMrGumby', 'INTENSE'), ('HelloMrGumby', 'ComputerScienceFTW')]
>>> [''.join(t) for t in list_of_tuples]
['FrenchyINTENSE', 'FrenchyComputerScienceFTW', 'FrenchyHelloMrGumby', 'INTENSEFrenchy', 'INTENSEComputerScienceFTW', 'INTENSEHelloMrGumby', 'ComputerScienceFTWFrenchy', 'ComputerScienceFTWINTENSE', 'ComputerScienceFTWHelloMrGumby', 'HelloMrGumbyFrenchy', 'HelloMrGumbyINTENSE', 'HelloMrGumbyComputerScienceFTW']
>>> [a + b for a, b in list_of_tuples]
['FrenchyINTENSE', 'FrenchyComputerScienceFTW', 'FrenchyHelloMrGumby', 'INTENSEFrenchy', 'INTENSEComputerScienceFTW', 'INTENSEHelloMrGumby', 'ComputerScienceFTWFrenchy', 'ComputerScienceFTWINTENSE', 'ComputerScienceFTWHelloMrGumby', 'HelloMrGumbyFrenchy', 'HelloMrGumbyINTENSE', 'HelloMrGumbyComputerScienceFTW']
答案 1 :(得分:2)
使用列表comprehesion。解压每个字符串元组并将字符串添加到一起。
>>> lst = [('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW')]
>>> [a+b for a,b in lst]
['FrenchyINTENSE', 'FrenchyComputerScienceFTW']
答案 2 :(得分:2)
对于更大的迭代(以及内存有效使用),您可能希望使用itertools模块中的某些内容,例如starmap函数:
import itertools
tuples = [('Frenchy', 'INTENSE'), ('Frenchy', 'ComputerScienceFTW'),]
result = itertools.starmap(lambda a, b: a + b, tuples)
当然,这也是一种优雅的方式。