我基本上是在寻找与此VB / VBA字符串操作相当的Python:
FullName = LastName & ", " + FirstName
在VB / VBA中+
和&
都是连接运算符,但它们处理Null值的方式不同:
"Some string" + Null ==> Null
"Some string" & Null ==> "Some string"
这个隐藏的功能允许我编写的第一行代码包含所需LastName和可选FirstName值之间的逗号和空格。如果FirstName为Null(Null是Python的无效的VB / VBA),则FullName将设置为LastName,不带尾随逗号。
在Python中有没有一种惯用的方法呢?
技术说明:
gnibbler和eumiro的答案并不完全等同于VB / VBA的+
和&
。使用他们的方法,如果FirstName是空字符串(“”)而不是None,则不会有尾随逗号。在几乎所有情况下,这都优于VB / VBA的结果,即使用空白的FirstName添加尾随逗号。
答案 0 :(得分:66)
以下行可用于连接更多not-None元素:
FullName = ', '.join(filter(None, (LastName, FirstName)))
答案 1 :(得分:17)
FullName = LastName + (", " + FirstName if FirstName else "")
答案 2 :(得分:0)
简单的三元运算符会:
>>> s1, s
('abc', None)
>>> print(s if s is None else s1 + s)
None
>>> print(s1 if s is None else s1 + s)
abc