2017-03-07 190 views
-2

以下用于替换“。”的Python代码有什么问题?与“ - ”替换字符串中的字符?

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

不应该是x [spot] !!而不是x(现货)! –

+0

如果你想替换..使用x.replace(“。”,“ - ”) –

+2

@KeerthanaPrabhakaran并没有真正有所作为,因为Python字符串是不可变的。无论哪种方式不起作用。两者都导致“TypeError” – DeepSpace

回答

1

你有一些错别字,让你的代码无法工作。

即使您修复此问题,x是一个字符串,并且字符串不可变。可以使用str.replace

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

,这应该是一个评论! –

+0

人们经常写出满足OPs问题的最短答案,然后一致地阐述。可能是你们人们不喜欢那样。 –

+0

不是真的!而这是无论如何可能重复的http://stackoverflow.com/questions/1228299/change-one-character-in-a-string-in-python –

1

你可以只使用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'