将字符串连接到 None 的 Pythonic 方法

标签 python concatenation

我正在使用 ElementTree 迭代 XML 元素,并将换行符附加到每个元素的 tail 中。 。 ElementTree 返回 None如果元素没有尾部。这意味着只要没有尾部,每当我尝试将另一个字符串连接到它时就会抛出错误,因为您无法连接 None和一个 str .

>>> a = None
>>> b = "string"
>>> a += b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'

解释 None 可能性的最紧凑方式是什么?当连接字符串时?我目前正在使用下面的代码,但我怀疑有一种更简单、更 Pythonic 的方法来重写它。

if element.tail:
    element.tail += "\n"
else:
    element.tail = "\n"

最佳答案

连接字符串时处理 None 的一种简短方法是使用 stror 转换:

a = None
b = "string"
str(a or "") + "\n"  # --> '\n'
str(b or "") + "\n"  # --> 'string\n'

关于将字符串连接到 None 的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67493245/

相关文章:

python - 计算 TensorFlow 中 tf.SparseTensor 每一行的平均值

mysql - 添加自增sql脚本

c# - 连接两个 Func 代表

python - “元组”对象不支持项目分配

python - 删除 TKinter Python 中的窗口标题栏

javascript - 如何在 JavaScript 中使用撇号和逗号连接数组

Pytorch 张量成对串联

java - java中字节数组和int值的连接

字符串上的 Python 语法无效?

python - 如果你使用 wheel 格式发布 Python,你还需要将它们发布为 egg 吗?