为什么我得到类型错误:'str'对象在 reversed() 函数中不可调用?



我正在试着写一个程序来在这些地方反转字符串的单词。

: -

str = "my name is xyz">

将成为

程序如下:-

str = "my name is atharva"
l = str.split()
print(l)
for var in l:
print(var)
temp_str = list(reversed(var))
print(temp_str)
list = ''.join(temp_str)
print(list)

当我运行错误时,我得到以下错误:-

['my', 'name', 'is', 'atharva']
my
['y', 'm']
ym
name
Traceback (most recent call last):
File "<string>", line 29, in <module>
TypeError: 'str' object is not callable

提前感谢。

希望很快收到你的来信。

在你的第一次迭代循环中,这条线将字符串赋给list:

list = ''.join(temp_str)

在下一次迭代中,您将尝试使用list作为内置函数:

list(reversed(var))

但是内置的不能再被访问了,因为你用你的字符串替换了它。

不要为变量使用现有的名称,如list(或str)。这会破坏对它们现有功能的访问

原因是您正在使用list作为变量名称并为其分配str值,这不应该是这种情况。只需将变量list重命名为其他名称即可。你也可以试试这段代码,它在不使用额外列表的情况下更优化:

str = "my name is atharva"
l = str.split()
out = []
for var in l:
out.append(var[::-1])
print (' '.join(out))

输出:

ym eman si avrahta

您正在运行内置函数列表

list = ''.join(temp_str)

重命名你的变量:

str = "my name is atharva"
l = str.split()
print(l)
for var in l:
print(var)
temp_str = list(reversed(var))
print(temp_str)
str_list= ''.join(temp_str)
print(str_list)

*在内置函数str

上运行也是一个不好的做法

您可以将您的代码更改为我下面提供的代码:

txt = "my name is atharva"
reversed_list = []
print(txt)
for var in txt.split():
reversed_list.append(var[::-1]) #This reverses the text
print(' '.join(reversed_list))

输出将是:

my name is atharva
ym eman si avrahta

我也改变了一些变量名。

最新更新