0

文字列を単純に逆にするプログラムを作成しようとしています。何かが添え字ではないというエラーが表示されます。これが機能しない理由を特定するのを手伝ってもらえますか?

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

4 に答える 4

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 に答える
3
rlist.append(list[i])

する必要があります

rlist.append(list1[i])

i現在、関数のインデックスを取得しようとしていlistます。

@gnibbler が指摘しているように、このようなタイプミスをしたり、ある変数を別の変数と混同したりしないように、説明的で十分に明確な変数名を選択するようにしてください。

于 2013-05-07T03:45:40.940 に答える
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 に答える