Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有条件地将字符串列表与条件连接起来_Python_String_List_Conditional Statements_String Concatenation - Fatal编程技术网

Python 有条件地将字符串列表与条件连接起来

Python 有条件地将字符串列表与条件连接起来,python,string,list,conditional-statements,string-concatenation,Python,String,List,Conditional Statements,String Concatenation,如果能提出更有效的有条件地连接列表的建议,我将不胜感激 这项技术似乎有效: sentence = ['this ','is ','are ','a ','sentence'] string = '' for i in sentence: if i != 'are ': string += i 您可以使用和: 是的,我有目的地使用了一个列表。使用str.join时,它不仅仅是一个生成器表达式。您可以过滤掉are并与连接。join,如下所示 >>> "".

如果能提出更有效的有条件地连接列表的建议,我将不胜感激

这项技术似乎有效:

sentence = ['this ','is ','are ','a ','sentence']
string = ''
for i in sentence:
    if i != 'are ':
        string += i
您可以使用和:


是的,我有目的地使用了一个列表。使用
str.join
时,它不仅仅是一个生成器表达式。您可以过滤掉
are
并与
连接。join
,如下所示

>>> "".join(item for item in sentence if item != "are ")
>>> "".join([item for item in sentence if item != "are "])
这里,
”。join
表示将生成器表达式返回的字符串连接起来,不使用填充字符。如果有
,”。join
,则所有元素都将通过
进行连接

实际上,
”.join
使用列表比使用生成器表达式更快。因此,只需将生成器表达式转换为具有列表理解的列表,如下所示

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

在我的计算机上,OP的解决方案比列表理解+Join快5%左右。我必须再问一个问题,为什么列表理解优于生成器。@mattkaeo它已经存在了。