Python 如果条件为Concat字符串,则不执行任何操作

Python 如果条件为Concat字符串,则不执行任何操作,python,string,if-statement,concat,Python,String,If Statement,Concat,我希望将几个字符串合并在一起,并且仅当布尔条件为True时才添加最后一个字符串。 如下所示(a、b和c是字符串): something=a+b+(如果是c) 但是Python不喜欢它。有没有一种不使用else选项的好方法 谢谢!:) 这应该适用于简单的场景- something = ''.join([a, b, c if condition else '']) 不使用else尝试下面的内容。它通过在条件为False(0)时索引空字符串和在条件为True(1)时索引字符串c来工作 我不确定您为

我希望将几个字符串合并在一起,并且仅当布尔条件为True时才添加最后一个字符串。 如下所示(a、b和c是字符串):

something=a+b+(如果是c)
但是Python不喜欢它。有没有一种不使用else选项的好方法


谢谢!:)

这应该适用于简单的场景-

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

不使用
else
尝试下面的内容。它通过在条件为False(0)时索引空字符串和在条件为True(1)时索引字符串
c
来工作

我不确定您为什么要避免使用else,否则,下面的代码看起来更可读:

something = a + b + (c if condition else '')
有没有一种不使用else选项的好方法

嗯,是的:

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

但是我不知道你的意思是没有else,还是没有整个if语句。

这是可能的,但它不是很像python:

something = a + b + c * condition

这将起作用,因为
condition*False
将返回
'
,而
condition*True
将返回原始
条件。但是,在这里您必须小心,
条件
也可以是
0
1
,但是任何更高的数字或任何文字都会破坏代码。

是的,条件将计算为1或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)
something = a + b + c * condition
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)