【问题标题】:Joining Lists and Splitting Strings [duplicate]加入列表和拆分字符串 [重复]
【发布时间】:2016-02-26 21:34:11
【问题描述】:

我以前有一些 C++ 经验,并且刚刚开始使用 Python。我从Dive into Python 阅读了这段文字:

根据我的经验,一般的想法是,如果您想对对象“O”执行操作,请调用该对象上的方法来执行此操作。

例如。如果我有一个列表对象,并且我想获得所有元素的总和,我会这样做:

listObject.getSumOfAllElements()

但是,上面摘录中给出的调用对我来说有点奇怪。对我来说这更有意义:

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

即将列表的所有元素连接成一个字符串,这里使用';'这个参数作为分隔符。

这是设计上的差异还是只是在语法上与我的想法有些不同?


编辑:

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

【问题讨论】:

  • 是的,它有点像“;”是您在此处执行方法的对象。
  • 你的意思是问为什么是string.join(list)而不是list.join(string)
  • @BhargavRao 是的,没错!
  • 啊谢谢@BhargavRao 您发布的页面上已经有详细的解释。我应该提出这个关闭还是直接删除它?
  • @AmitTomar 不。保持原状。其他人将从中受益。 thefourtheye 的回答很好。如果你也这么认为,请接受它。

标签: python oop language-design


【解决方案1】:

这是设计上的差异还是只是在语法上与我的想法有些不同?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    相关资源
    最近更新 更多