我的程序总是随机跳过字母!例如,“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 年后我知道如何正确地反转各种不同语言的字符串:)
最佳答案
当你有重复的字母时会发生这种情况,因为
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
关于python - 单词反转程序随机跳过字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321318/