我正在尝试编写一个简单地反转字符串的程序。我收到一个错误,指出某些内容不可下标或其他内容。你们能帮我查明为什么这不起作用吗?
listreverse(list1):
rlist = []
i = len(list1) - 1
while i >= 0:
rlist.append(list[i])
i = i - 1
return rlist
rlist.append(list[i])
应该
rlist.append(list1[i])
现在你正在尝试获取函数的索引i
。list
正如@gnibbler 指出的那样,您应该尝试选择具有描述性和独特性的变量名称,以免您出现这样的错字或将一个变量与另一个变量混淆。
您的代码可以简化为:
def string_reverse(string1):
return string1[::-1]
print string_reverse('hello')
它返回:
olleh
请注意,您的代码在接受字符串时会返回一个列表,而不是字符串。在这里,如果你发送一个字符串,你会得到反转的字符串,如果你发送一个列表,你会得到反转的列表
print string_reverse([1,2,3,4])
返回
[4, 3, 2, 1]
改变
rlist.append(list[i])
到
rlist.append(list1[i])
这将解决你的问题..
在 Python 中有很多(其他)方法可以做到这一点:
>>> s = 'Hello World!'
# 1
>>> ''.join(reversed(s))
'!dlroW olleH'
# 2
>>> s[::-1]
'!dlroW olleH'
# 3
>>> r = ''
>>> for i in s:
r = i+r
>>> r
'!dlroW olleH'
# 4
>>> ''.join(list(s)[::-1])
'!dlroW olleH'
你可以用这个
str='qwerty'
print str[::-1] # it will reverse