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

2024-10-03 15:30:56 发布

您现在位置: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年后我知道如何正确地反转各种不同语言的字符串:)


Tags: textin程序newfor字母placelength
2条回答

当你有重复的字母时会发生这种情况,因为

original_list.index(l)

将始终为相同的l返回相同的值。所以new_place对于在不同位置的两个相同的字母是相同的。你知道吗

Python中反转字符串的一种常见方法是切片:

>>> s = "hello"
>>> s[::-1]
'olleh'

也可以使用^{},但它返回reversed object(不是字符串)。如果您想以相反的顺序迭代字符串,这是一个更好的选择:

>>> for c in reversed(s):
...     print c
... 
o
l
l
e
h

试试看

def reverse(text):
    return text[::-1]

相关问题 更多 >