2014-11-05 72 views

回答

8

您可以使用str.joinlist comprehension

sentence = ['this ','is ','are ','a ','sentence'] 
string = ''.join([i for i in sentence if i != 'are ']) 

是的,我故意用一个列表理解。当使用str.join时,发生器表达式为generally faster

+0

在我的电脑业务方案的解决方案比列表理解快约5%+加入 – 2014-11-05 04:24:15

4

您可以过滤掉are"".join串联,这样

>>> "".join(item for item in sentence if item != "are ") 

这里,"".join意味着,参加由不填充字符发生器表达式返回的字符串。如果您有",".join,则所有元素将加入,

实际上,"".join的列表比使用生成器表达式更快。所以,只是转换发电机表达与列表理解列表,这样

>>> "".join([item for item in sentence if item != "are "]) 
+0

我要问一个问题上SO关于为什么列表理解优于此处的生成器。 – 12345678910111213 2014-11-05 04:38:05

+1

@mattkaeo它已经在那里。 [由Python的核心开发人员之一Raymond Hettinger回答](http://stackoverflow.com/a/9061024/1903116) – thefourtheye 2014-11-05 04:46:05