python:连接列表和拆分字符串

本问题已经有最佳答案,请猛点这里访问。

我以前有一些使用c++的经验,并且刚刚开始使用Python。我从《深入Python》中读到了这篇文章:

enter image description here

在我的经验中,一般的想法是,如果您想对对象O执行操作,您可以调用该对象上的一个方法来执行。

如。如果我有一个list对象,我想要得到所有元素的和,我会这样做:

1
listObject.getSumOfAllElements()

然而,我觉得上面那本书节选中的电话有点奇怪。对我来说,这更有意义:

1
return (["%s=%s" % (k, v) for k, v in params.items()]).join(";")

也就是说,以字符串的形式连接列表中的所有元素,在这里,使用这个参数';'作为分隔符。

这是设计上的差异,还是只是语法上和我想的有点不同?

编辑:

为了完成,这本书稍后说:

enter image description here


Is this a design difference or just syntactically a little different than what I am thinking?

是的,我认为这是故意的。join函数是故意通用的,因此它可以与任何可迭代的对象(包括迭代器对象和生成器)一起使用。这避免了分别为listtupleset等实现join