单词反转程序随机跳过字母?

时间:2013-08-19 19:11:59

标签: python

我的程序会随机删除字母!例如,'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年后我知道如何正确地用各种不同的语言来反转字符串:)

2 个答案:

答案 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]