【问题标题】:Is there a good shortcut for modifying python variables using methods?使用方法修改python变量是否有一个很好的快捷方式?
【发布时间】:2015-12-14 09:01:21
【问题描述】:

i += 1 可以用来代替i = i + 1

string = string.replace(...) 有类似的简写吗?

【问题讨论】:

  • 字符串是不可变的,所以不,如果您正在考虑字符串,则没有类似的简写,因此从您使用的标签来看似乎......相反,可变对象具有修改的方法对象到位并返回None,规范(和错误)示例[3,7,2,9,1].sort()
  • @gboffi 他说有一个(比如说)x r= ... 语法而不是x = x.replace(...)。喜欢x += 'something'。与可变性无关(因为+= 语法适用于字符串),只是与您是否可以通过替换和赋值来做到这一点有关。
  • i += 1 不仅仅是 i = i + 1 的语法糖;它调用不同的方法(i.__iadd__ 而不是i.__add__)。 a = a.method() 没有通用语法。
  • @RobertGrant 是的,这就是我的意思。对于这样一个简单的操作,必须两次键入相同的变量名感觉就像浪费时间/空间,我想知道是否有更“pythonic”的方式来做这件事。有人可以解释为什么我的问题被否决了吗?我不明白。
  • @byntje 不知道,但如果您对以下答案之一感到满意,请接受 :)

标签: python string methods replace


【解决方案1】:

类型字符串支持 += 运算符。你可以写str += "hello",但这样的缩短对函数不起作用。类型字符串是不可变的

string.replace 这样的函数会返回一个新字符串,因此您必须将其替换为旧字符串(如果您想要的话)。

【讨论】:

    【解决方案2】:

    不,因为没有内置语法。

    对于字符串,你仍然可以使用+=

    >>> x = "hello"
    >>> x += " world"
    >>> x
    'hello world'
    

    因为 += 是为字符串定义的。只是没有用于替换的赋值运算符。

    【讨论】:

    • 没有评论的反对票。来吧,反对者。你比这更好。
    猜你喜欢
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    相关资源
    最近更新 更多