Python 如果条件为Concat字符串,则不执行任何操作
我希望将几个字符串合并在一起,并且仅当布尔条件为True时才添加最后一个字符串。 如下所示(a、b和c是字符串):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来工作 我不确定您为
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)