“ str = str.replace(” something“,” something_else“)”在Python 3.6.5中不起作用

时间:2019-04-03 01:59:16

标签: python

当我输入以下内容时:

str = str.replace("something", "something_else")

它返回:

AttributeError: 'tuple' object has no attribute 'replace'

我使用的是Python 3.6.5。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:-2)

您正在重写内置的“ str”,即字符串类。我不确定为什么您收到的错误消息为AttributeError: 'tuple' object has no attribute 'replace',但是有可能与重新分配str名称有关。

似乎您在上一行(未显示)中用元组替换了str

如果您要重新启动解释器并按原样键入此代码,则可能会得到以下输入:

In [1]: str = str.replace('something', 'something_else')                                                              
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-040d062d3c3f> in <module>
----> 1 str = str.replace('something', 'something_else')

TypeError: replace() takes at least 2 arguments (1 given)

您可能想说明以下内容:

In [2]: my_string = 'something'                                                                                       

In [3]: my_string = my_string.replace('something', 'something_else')                                                  

In [4]: my_string                                                                                                     
Out[4]: 'something_else'

答案 1 :(得分:-2)

检查str的内容。它包含一个元组,而不是字符串。是.split()操作或类似操作的输出吗?

例如:

>>> str = ( 'a', 'b', 'banana' )
>>> str.replace("something", "something_else")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'replace'

显然,它可以与正确的str一起工作:

>>> str = 'banana' 
>>> str.replace("something", "something_else")
>>>