我刚刚开始学习python。 我试图为字符串创建一个反向函数,我知道这段代码有效:
def reverse(text):
string_list = list(text)
new_list = []
length = len(string_list) - 1
while length >= 0:
new_list.append(string_list[length])
length = length - 1
return ''.join(new_list)
但我不明白为什么这个没有:
def reverse(text):
string_list = list(text)
new_list = []
for i in len(text)-1:
new_list.append(string_list[len(text)-i])
return "".join(new_list)
如何使for循环工作?错误在哪里?
答案 0 :(得分:2)
您应该使用range
或更好xrange
:
for i in xrange(len(text)):
new_list.append(string_list[len(text) - 1 - i])
答案 1 :(得分:1)
尝试这样的事情:
def reverse(text):
string_list = list(text)
new_list = []
for i in range(len(text)):
new_list.append(string_list[len(text) -1- i])
return "".join(new_list)
reverse('joe')=> 'EOJ'
使用此代码,您既不会出现list index out of range
错误,也不会错过字符串中的字符。
答案 2 :(得分:0)
从索引1开始并使用range()
for i in range(1,len(text)+1):
答案 3 :(得分:0)
得到错误,请在相应的行中使用
for i in range(len(text))
和
new_list.append(string_list[(len(text)-1)-i])