我希望能提供更有效的方式来有条件地连接列表。有条件地连接条件列表的字符串
这种技术似乎工作:
sentence = ['this ','is ','are ','a ','sentence']
string = ''
for i in sentence:
if i != 'are ':
string += i
我希望能提供更有效的方式来有条件地连接列表。有条件地连接条件列表的字符串
这种技术似乎工作:
sentence = ['this ','is ','are ','a ','sentence']
string = ''
for i in sentence:
if i != 'are ':
string += i
您可以使用str.join
和list comprehension:
sentence = ['this ','is ','are ','a ','sentence']
string = ''.join([i for i in sentence if i != 'are '])
是的,我故意用一个列表理解。当使用str.join
时,发生器表达式为generally faster。
您可以过滤掉are
与"".join
串联,这样
>>> "".join(item for item in sentence if item != "are ")
这里,"".join
意味着,参加由不填充字符发生器表达式返回的字符串。如果您有",".join
,则所有元素将加入,
。
实际上,"".join
的列表比使用生成器表达式更快。所以,只是转换发电机表达与列表理解列表,这样
>>> "".join([item for item in sentence if item != "are "])
我要问一个问题上SO关于为什么列表理解优于此处的生成器。 – 12345678910111213 2014-11-05 04:38:05
@mattkaeo它已经在那里。 [由Python的核心开发人员之一Raymond Hettinger回答](http://stackoverflow.com/a/9061024/1903116) – thefourtheye 2014-11-05 04:46:05
在我的电脑业务方案的解决方案比列表理解快约5%+加入 – 2014-11-05 04:24:15