使用可选分隔符连接字符串和无/字符串

mwo*_*e02 17 python string

我基本上寻找与此VB/VBA字符串操作等效的Python:

FullName = LastName & ", " + FirstName
Run Code Online (Sandbox Code Playgroud)

在VB/VBA中+,&它们都是连接运算符,但它们处理Null值的方式不同:

"Some string" + Null ==> Null
"Some string" & Null ==> "Some string"
Run Code Online (Sandbox Code Playgroud)

这个隐藏的功能允许我编写的第一行代码包含所需LastName和可选FirstName值之间的逗号和空格.如果FirstName为Null(Null是Python的无效的VB/VBA),则FullName将设置为LastName,不带尾随逗号.

在Python中有没有一种惯用的方法呢?

技术说明:
gnibbler和eumiro的答案并不完全等同于VB/VBA +&.使用他们的方法,如果FirstName是空字符串("")而不是None,则不会有尾随逗号.在几乎所有情况下,这都优于VB/VBA的结果,即使用空白的FirstName添加尾随逗号.

eum*_*iro 70

以下行可用于连接更多not-None元素:

FullName = ', '.join(filter(None, (LastName, FirstName)))
Run Code Online (Sandbox Code Playgroud)

  • gnibbler对于一个简单的concat来说是最清晰和最好的.但是这个正是我加入整个列表所需要的. (3认同)

Joh*_*ooy 18

FullName = LastName + (", " + FirstName if FirstName else "")
Run Code Online (Sandbox Code Playgroud)