Python 单词反转程序随机跳过字母?
我的程序一直在随机跳过字母!例如,“coolstory”变成“yrotsloc”,“awesome”变成“mosewa” 代码如下:Python 单词反转程序随机跳过字母?,python,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: orig
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年后我知道如何正确地反转各种不同语言中的字符串:)试试看
def reverse(text):
return text[::-1]
当您有重复的字母时会发生这种情况,因为
original_list.index(l)
对于相同的l
,将始终返回相同的值。因此,new_place
对于位于不同位置的两个相同字母将是相同的
Python中反转字符串的一种常见方法是切片:
>>> s = "hello"
>>> s[::-1]
'olleh'
您也可以使用,但它返回一个反向对象
(不是字符串)。如果要以相反的顺序迭代字符串,这是一个更好的选项:
>>> for c in reversed(s):
... print c
...
o
l
l
e
h
这是一种非常复杂的反转字符串的方法<代码>文本[::-1]就可以了。它不是那么随机的。它在重复的字母上。。。你正在使用索引…为什么我运行这个,它给了我
'yrtsloc'
,而不是yrotsloc
。您的描述是错误的,还是这不是您的实际代码?这看起来确实应该是错误的,但我看不出它是如何解释问题中给出的示例的?@JackAidley,reversed\u text[new\u place]=l
设置了一个相同的现有位置char@JackAidley:根据这一解释,它应该产生yrtsloc
,而不是yrotsloc
。如果你运行代码…它会产生yrtsloc
。因此,问题中给出的示例要么是错误的,要么代码不是OP的实际代码。不管怎样,阿尔沙吉已经解释了OP给我们的代码有什么问题…