我想将几个字符串连接起来,并且只有在布尔条件为True时才添加最后一个字符串。 像这样(a,b和c是字符串):
something = a + b + (c if <condition>)
但Python并不喜欢它。没有else选项,有没有一种很好的方法呢?
谢谢! :)
答案 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
也可以是0
或1
,但任何更高的数字或任何文字都会破坏代码。
答案 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)