【问题标题】:Conditionally concatenating a list of strings with a condition有条件地将字符串列表与条件连接起来
【发布时间】:2015-01-01 04:34:13
【问题描述】:

如果有更有效的方法来有条件地连接列表,我将不胜感激。

这种技术似乎有效:

sentence = ['this ','is ','are ','a ','sentence']
string = ''
for i in sentence:
    if i != 'are ':
        string += i

【问题讨论】:

    标签: python string list conditional-statements string-concatenation


    【解决方案1】:

    您可以使用str.joinlist comprehension

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

    是的,我有目的地使用了列表推导。使用str.join 时,它是generally faster,而不是生成器表达式。

    【讨论】:

    • 在我的电脑上,OP的解决方案比列表理解+加入快5%左右
    【解决方案2】:

    您可以过滤掉are 并与"".join 连接,就像这样

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

    这里,"".join 表示,将生成器表达式返回的字符串连接起来,不带填充字符。如果你有",".join,那么所有的元素都会被,连接起来。

    实际上,"".join 使用列表会比使用生成器表达式更快。因此,只需将生成器表达式转换为具有列表理解的列表,就像这样

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2022-11-19
    • 1970-01-01
    • 2020-10-21
    • 2021-09-24
    相关资源
    最近更新 更多