【发布时间】:2010-10-04 09:01:25
【问题描述】:
这一直让我感到困惑。看起来这样会更好:
my_list = ["Hello", "world"]
print(my_list.join("-"))
# Produce: "Hello-world"
比这个:
my_list = ["Hello", "world"]
print("-".join(my_list))
# Produce: "Hello-world"
这样有什么特殊原因吗?
【问题讨论】:
-
为了便于记忆和理解,
-声明您正在加入列表并转换为字符串。它是面向结果的。 -
我认为最初的想法是因为 join() 返回一个字符串,它必须从字符串上下文中调用。将 join() 放在列表上没有多大意义,因为列表是对象的容器,不应该有一个只针对字符串的一次性函数。
-
@BallpointBen "...因为 Python 的类型系统不够强大" 是完全错误的。正如 Yoshiki Shibukawa 的回答(从您发表评论之前的 8 年开始!)所说,iterable.join() 被认为是可能的,但被拒绝了,因为它是一个不太好的 API 设计 - 而不是因为它无法实现。
-
我可能有偏见,因为我习惯了javascript,但是你想加入列表,它应该是列表imo的方法。感觉倒退了。
-
我认为是因为“
join是导致字符串的字符串方法”更有意义?