我的程序会随机删除字母!例如,'coolstory'变成'yrotsloc'而'awesome'变成'mosewa'
以下是代码:
def reverse(text):
length = len(text)
reversed_text = []
for i in range(0,length + 1):
reversed_text += ['']
original_list = []
for l in text:
original_list.append(l)
new_place = length - (original_list.index(l))
reversed_text[new_place] = l
return "".join(reversed_text)
编辑:感谢大家的答案。我刚刚重新发现了这个被遗忘的帐户。我可以向你保证,6年后我知道如何正确地用各种不同的语言来反转字符串:)
答案 0 :(得分:8)
当你有重复的字母时会发生这种情况,因为
original_list.index(l)
将始终为同一l
返回相同的值。因此new_place
对于不同位置的两个相同字母将是相同的。
在Python中反转字符串的一种常用方法是使用切片:
>>> s = "hello"
>>> s[::-1]
'olleh'
您也可以使用reversed()
,但会返回reversed object
(不是字符串)。如果您想以相反的顺序迭代字符串,这是一个更好的选择:
>>> for c in reversed(s):
... print c
...
o
l
l
e
h
答案 1 :(得分:3)
尝试
def reverse(text):
return text[::-1]