0

我正在尝试编写一个简单地反转字符串的程序。我收到一个错误,指出某些内容不可下标或其他内容。你们能帮我查明为什么这不起作用吗?

listreverse(list1):
     rlist = []
     i = len(list1) - 1
     while i >= 0:
             rlist.append(list[i])
             i = i - 1
     return rlist
4

4 回答 4

3
rlist.append(list[i])

应该

rlist.append(list1[i])

现在你正在尝试获取函数的索引ilist

正如@gnibbler 指出的那样,您应该尝试选择具有描述性和独特性的变量名称,以免您出现这样的错字或将一个变量与另一个变量混淆。

于 2013-05-07T03:45:40.940 回答
3

您的代码可以简化为:

def string_reverse(string1):
    return string1[::-1]

print string_reverse('hello')

它返回:

olleh

请注意,您的代码在接受字符串时会返回一个列表,而不是字符串。在这里,如果你发送一个字符串,你会得到反转的字符串,如果你发送一个列表,你会得到反转的列表

print string_reverse([1,2,3,4])

返回

[4, 3, 2, 1]
于 2013-05-07T03:52:45.093 回答
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'
于 2013-05-07T04:01:20.430 回答
0

你可以用这个

str='qwerty'
print str[::-1] # it will reverse 
于 2016-01-21T22:49:17.840 回答