连接列表和拆分字符串
Joining Lists and Splitting Strings
我之前有一些 C++ 经验,并且刚刚开始使用 Python。我从 Dive into Python 阅读了这篇文章:
根据我的经验,一般的想法是,如果你想对对象 'O' 执行操作,你可以调用该对象的方法来完成它。
例如。如果我有一个列表对象,并且我想获得所有元素的总和,我会做类似的事情:
listObject.getSumOfAllElements()
但是,上面书中摘录中给出的调用对我来说有点奇怪。对我来说这更有意义:
return (["%s=%s" % (k, v) for k, v in params.items()]).join(";")
即将列表的所有元素作为一个字符串连接起来,这里使用这个参数';'
作为分隔符。
这是设计差异还是语法上与我的想法略有不同?
编辑:
为了完成,这本书稍后会说:
Is this a design difference or just syntactically a little different than what I am thinking?
是的,我认为这是设计使然。 join
函数是有意通用的,因此它可以与任何可迭代对象(包括迭代器对象和生成器)一起使用。这避免了分别为 list
、tuple
、set
等实现 join
。
我之前有一些 C++ 经验,并且刚刚开始使用 Python。我从 Dive into Python 阅读了这篇文章:
根据我的经验,一般的想法是,如果你想对对象 'O' 执行操作,你可以调用该对象的方法来完成它。
例如。如果我有一个列表对象,并且我想获得所有元素的总和,我会做类似的事情:
listObject.getSumOfAllElements()
但是,上面书中摘录中给出的调用对我来说有点奇怪。对我来说这更有意义:
return (["%s=%s" % (k, v) for k, v in params.items()]).join(";")
即将列表的所有元素作为一个字符串连接起来,这里使用这个参数';'
作为分隔符。
这是设计差异还是语法上与我的想法略有不同?
编辑:
为了完成,这本书稍后会说:
Is this a design difference or just syntactically a little different than what I am thinking?
是的,我认为这是设计使然。 join
函数是有意通用的,因此它可以与任何可迭代对象(包括迭代器对象和生成器)一起使用。这避免了分别为 list
、tuple
、set
等实现 join
。