文字列を単純に逆にするプログラムを作成しようとしています。何かが添え字ではないというエラーが表示されます。これが機能しない理由を特定するのを手伝ってもらえますか?
listreverse(list1):
rlist = []
i = len(list1) - 1
while i >= 0:
rlist.append(list[i])
i = i - 1
return rlist
コードは次のように簡略化できます。
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])
i
現在、関数のインデックスを取得しようとしていlist
ます。
@gnibbler が指摘しているように、このようなタイプミスをしたり、ある変数を別の変数と混同したりしないように、説明的で十分に明確な変数名を選択するようにしてください。
変化する
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