我正在试着写一个程序来在这些地方反转字符串的单词。
: -
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
我也改变了一些变量名。