我希望有条件地连接列表的更有效方法的建议。
这项技术似乎有效:
sentence = ['this ','is ','are ','a ','sentence']
string = ''
for i in sentence:
if i != 'are ':
string += i
答案 0 :(得分:8)
您可以使用str.join
和list comprehension:
sentence = ['this ','is ','are ','a ','sentence']
string = ''.join([i for i in sentence if i != 'are '])
是的,我有目的地使用了列表理解。使用str.join
时,它是generally faster而不是生成器表达式。
答案 1 :(得分:4)
您可以过滤掉are
并与"".join
连接,就像这样
>>> "".join(item for item in sentence if item != "are ")
这里,"".join
表示加入生成器表达式返回的字符串,没有填充字符。如果您有",".join
,那么所有元素都将由,
加入。
实际上,"".join
使用列表比使用生成器表达式更快。因此,只需将生成器表达式转换为具有列表推导的列表,如此
>>> "".join([item for item in sentence if item != "are "])