Concat字符串if条件,否则什么也不做

时间:2016-12-29 09:18:40

标签: python string if-statement concat

我想将几个字符串连接起来,并且只有在布尔条件为True时才添加最后一个字符串。 像这样(a,b和c是字符串):

something = a + b + (c if <condition>)

但Python并不喜欢它。没有else选项,有没有一种很好的方法呢?

谢谢! :)

5 个答案:

答案 0 :(得分:8)

在不使用else的情况下尝试下面的操作,它通过在条件为False(0)时索引空字符串并在条件为True(1)时索引字符串c来工作

something = a + b + ['', c][condition]

我不确定你为什么要避免使用else,否则,下面的代码似乎更具可读性

something = a + b + (c if condition else '')

答案 1 :(得分:3)

这适用于简单的场景 -

something = ''.join([a, b, c if condition else ''])

答案 2 :(得分:2)

这是可能的,但它并不是非常Pythonic:

something = a + b + c * condition

这将有效,因为condition * False将返回'',而condition * True将返回原始condition。但是,您必须小心谨慎,condition也可以是01,但任何更高的数字或任何文字都会破坏代码。

答案 3 :(得分:0)

  

如果没有 else 选项,有没有很好的方法呢?

嗯,是的:

something = ''.join([a, b])
if condition:
    something = ''.join([something, c])

但是我不知道你是否真的没有别的意思,或者没有整个if语句。

答案 4 :(得分:0)

a_list = ['apple', 'banana,orange', 'strawberry']
b_list = []

for i in a_list:
    for j in i.split(','):
        b_list.append(j)

print(b_list)