python - 为什么 join() 不自动将其参数转换为字符串?你什么时候不想让它们成为字符串?

标签 python string-concatenation

我们有一个列表:

myList = [1, "two"]

并且想要打印出来,通常我会使用类似的东西:

"{0} and {1}".format(*myList)

但你也可以这样做:

" and ".join(myList)

但不幸的是:

>>> " and ".join(myList)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found

为什么它不自动将接收到的列表转换为字符串?

什么时候不需要它来将它们转换为字符串?我是否遗漏了一些微小的边缘情况?

最佳答案

来自Zen of Python :

Explicit is better than implicit.

Errors should never pass silently.

隐式转换为字符串可以很容易地隐藏错误,我真的很想知道我是否突然在某个地方有不同的类型,这些类型本来是字符串。

如果你想明确地转换成字符串,你可以使用map(),例如:

''.join(map(str, myList))

关于python - 为什么 join() 不自动将其参数转换为字符串?你什么时候不想让它们成为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22152668/

相关文章:

python 正则表达式 : to match space character or end of string

python - 能否给python-2.7的faker库指定语言

Python:哪个占用内存更少且执行速度快?

python - 在 Pyspark 中将纪元时间转换为时间戳

c++ - 字符串连接函数的执行时间异常糟糕

python - 远程服务器上的 Django 调试工具栏

python - 根据条件连接列表中的字符串和整数

python - 有头或尾的 join() 成语吗?

java - 是否为 S.O.P 创建了一个新的字符串对象?

javascript - 为什么字符串连接比数组连接更快?