使用可选分隔符连接字符串和None/字符串
我基本上是在寻找Python中与这个VB/VBA字符串操作相对应的写法:
FullName = LastName & ", " + FirstName
在VB/VBA中,+
和&
都是用来连接字符串的符号,但它们处理空值(Null)的方式不同:
"Some string" + Null ==> Null
"Some string" & Null ==> "Some string"
这个隐藏的特性让我写的第一行代码可以在必需的姓(LastName)和可选的名(FirstName)之间加上一个逗号和空格。如果名是空值(Null在VB/VBA中相当于Python的None),那么全名(FullName)就只会是姓,没有后面的逗号。
在Python中有没有一种简单的一行代码可以做到这一点呢?
技术说明:
gnibbler和eumiro的回答并不完全等同于VB/VBA中的+
和&
。使用他们的方法时,如果名是一个空字符串("")而不是None,那么就不会有后面的逗号。在几乎所有情况下,这种结果比VB/VBA的结果更好,因为VB/VBA会在空的名后面加上一个逗号。
3 个回答
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
128
下面这一行代码可以用来把多个不是None的元素连接在一起:
FullName = ', '.join(filter(None, (LastName, FirstName)))
31
这段内容是关于编程的讨论,主要涉及一些技术细节。虽然我不能直接回答问题,但我可以帮你理解其中的概念。
首先,提到的代码块
FullName = LastName + (", " + FirstName if FirstName else "")
可能包含了一些示例代码或特定的编程语法。对于初学者来说,理解这些代码是很重要的,因为它们展示了如何在实际编程中应用某些技术。
在编程中,很多时候我们需要解决特定的问题,或者实现某种功能。这个过程通常涉及到写代码、调试和测试。初学者可能会觉得这些步骤有点复杂,但只要多加练习,就会慢慢掌握。
总之,编程是一项需要不断学习和实践的技能,遇到问题时可以参考社区的讨论和示例代码,这样能帮助你更好地理解和解决问题。