【问题标题】:Replacing a character within a string? [duplicate]替换字符串中的字符? [复制]
【发布时间】:2017-03-07 11:35:02
【问题描述】:

以下用于替换“.”的 Python 代码有什么问题?带“-”

x = 'BRK.B'
if "." in x
    spot = x.find('.')
    x(spot)="-"

【问题讨论】:

  • 不应该是x[spot]!!而不是 x(spot)!!!
  • 如果你想替换..使用 x.replace(".","-")
  • @KeerthanaPrabhakaran 并没有真正发挥作用,因为 Python 字符串是不可变的。无论哪种方式都行不通。两者都导致TypeError
  • 没错,这就是为什么添加下一条评论。

标签: python character


【解决方案1】:

您有一些拼写错误,这使您的代码无法运行。

即使你解决了这个问题,x 也是一个字符串,并且字符串是不可变的。

您可以使用str.replace

 x = x.replace('.','-')

【讨论】:

  • 这应该是一条评论!
  • 人们经常写出满足 OPs 问题的最短答案,然后不断地阐述。可能是你们不喜欢那样。
  • 不是真的!无论如何,这可能是stackoverflow.com/questions/1228299/…的副本
  • @KeerthanaPrabhakaran 真的吗?它是如何“要求更多信息或提出改进建议”的?对我来说,这似乎是一个(部分)答案,我们被明确告知“避免在 cmets 中回答问题”。
  • 提交部分答案然后添加更多细节并没有错,但初始答案必须本身就是一个充分的答案。
【解决方案2】:

你可以使用replace:

>>> 'BRK.B'.replace('.', '-')
'BRK-B'

如果你只想替换第一次出现:

>>> 'BRK.B'.replace('.', '-', 1)
'BRK-B'

如果出于某种原因,您真的想自己动手:

x = 'BRK.B'
if "." in x: # <- Don't forget : after x
    spot = x.find('.')
    # You're not allowed to modify x, but you can create a new string
    x = x[:spot] + '-' + x[spot+1:]
print(x)
# 'BRK-B'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 2021-06-17
    • 2012-10-05
    • 1970-01-01
    • 2014-11-05
    • 2022-01-07
    相关资源
    最近更新 更多