Python I';我是编程新手,正在尝试编写自己的反向函数。没有按计划进行
下面是一段代码,它似乎在一开始就可以工作,但在我试图给出列表元素的列表中留下另一个元素的同时,用一半填充了我的holding变量。最后一个元素是明确的。我不知道为什么这不是在整个flist中迭代。帮忙 谢谢 森博尔Python I';我是编程新手,正在尝试编写自己的反向函数。没有按计划进行,python,Python,下面是一段代码,它似乎在一开始就可以工作,但在我试图给出列表元素的列表中留下另一个元素的同时,用一半填充了我的holding变量。最后一个元素是明确的。我不知道为什么这不是在整个flist中迭代。帮忙 谢谢 森博尔 而不是在迭代列表时尝试修改列表。相反,您应该做的只是创建一个新字符串,并以相反的顺序追加字母。您可以使用范围反向计数来完成此操作: def reverse(text): reverse_string = "" for i in range(len(text) - 1,
而不是在迭代列表时尝试修改列表。相反,您应该做的只是创建一个新字符串,并以相反的顺序追加字母。您可以使用
范围
反向计数来完成此操作:
def reverse(text):
reverse_string = ""
for i in range(len(text) - 1, -1, -1):
reverse_string += text[i]
print(reverse_string)
reverse("JamesBond")
但是,在python中实现这一点的最佳方法是使用切片,在切片中,您可以简单地执行以下操作:
reverse_string = text[::-1]
而不是在迭代列表时尝试修改列表。相反,您应该做的只是创建一个新字符串,并以相反的顺序追加字母。您可以使用
范围
反向计数来完成此操作:
def reverse(text):
reverse_string = ""
for i in range(len(text) - 1, -1, -1):
reverse_string += text[i]
print(reverse_string)
reverse("JamesBond")
但是,在python中实现这一点的最佳方法是使用切片,在切片中,您可以简单地执行以下操作:
reverse_string = text[::-1]
如前所述,问题是在迭代列表时修改列表
基本上,for i in range plist
不会遍历所有元素,因为在循环遍历列表时会缩短列表。这就是在迭代列表时列表发生的情况
holding plist
d ["J","a","m","e","s","B","o","n","d"]
^
dn ["J","a","m","e","s","B","o","n"]
^
dno ["J","a","m","e","s","B","o"]
^
dnoB ["J","a","m","e","s","B"]
^
dnoBs ["J","a","m","e","s"]
^ #can't loop any further
你能做的就是这样
for i in range(len(plist), -1, -1):
holding = holding + plist[i]
还是这个
def reverse(text):
return text[::-1]
或者您可以使用内置的反向函数,如。如前所述,问题在于您在迭代列表时正在修改列表
基本上,for i in range plist
不会遍历所有元素,因为在循环遍历列表时会缩短列表。这就是在迭代列表时列表发生的情况
holding plist
d ["J","a","m","e","s","B","o","n","d"]
^
dn ["J","a","m","e","s","B","o","n"]
^
dno ["J","a","m","e","s","B","o"]
^
dnoB ["J","a","m","e","s","B"]
^
dnoBs ["J","a","m","e","s"]
^ #can't loop any further
你能做的就是这样
for i in range(len(plist), -1, -1):
holding = holding + plist[i]
还是这个
def reverse(text):
return text[::-1]
或者,您可以使用内置的反向
功能,例如。从字符串创建列表时,您可以使用列表。理解:
[文本中的i代表i]
您可以使用enumerate来扭转这种情况,例如:
[text[-ind-1]对于ind,i在枚举(text)]从字符串创建列表时,您可以使用list.comprehension:
[文本中的i代表i]
您可以使用enumerate来扭转这种情况,例如:
[text[-ind-1]对于ind,我在enumerate(text)]据我所知,您希望使用字符串“JamesBond”并将其反转为“dnoBsemaJ”。我对Python也非常陌生。我尝试了一下你的函数,得出了以下结论。它可能不是最漂亮的,但它确实颠倒了文本
def reverse(_string):
_stringLen = len(_string)
i = _stringLen - 1
_newstring = ""
while i >= 0:
_newstring = _newstring + _string[i]
i -= 1
return _newstring
print reverse("JamesBond")
打印出:dnoBsemaJ据我所知,您希望将字符串“JamesBond”反转为“dnoBsemaJ”。我对Python也非常陌生。我尝试了一下你的函数,得出了以下结论。它可能不是最漂亮的,但它确实颠倒了文本
def reverse(_string):
_stringLen = len(_string)
i = _stringLen - 1
_newstring = ""
while i >= 0:
_newstring = _newstring + _string[i]
i -= 1
return _newstring
print reverse("JamesBond")
打印输出:dnoBsemaJ拼接可以帮助您,除非您确实希望编写算法进行反转
>>> k = 'JamesBond'
>>> rev_str = k[::-1]
>>> rev_str
'dnoBsemaJ'
>>> type(rev_str)
<type 'str'>
>k='JamesBond'
>>>rev_str=k[:-1]
>>>雷沃街
“dnoBsemaJ”
>>>类型(修订版)
除非您确实想将算法写入反向,否则拼接可以帮助您
>>> k = 'JamesBond'
>>> rev_str = k[::-1]
>>> rev_str
'dnoBsemaJ'
>>> type(rev_str)
<type 'str'>
>k='JamesBond'
>>>rev_str=k[:-1]
>>>雷沃街
“dnoBsemaJ”
>>>类型(修订版)
在迭代同一列表时,切勿修改列表。您可能会遇到意外和不想要的行为,就像您现在最有可能遇到的那样。切勿在迭代同一列表时修改列表。你最终会遇到意想不到的和不想要的行为,就像你现在最可能遇到的那样。这会给出一个列表,而不是一个反向字符串。也不需要枚举:“”。将[s[-i-1]用于范围内的i(len(s)))
。这将提供一个列表而不是反向字符串。也不需要枚举:“”。加入([s[-i-1]表示范围内的i(len(s)))
。非常感谢。我一直在寻找类似的东西。你能看一下这里到底发生了什么吗?:因为我在范围内(len(text)-1,-1,-1)??非常感谢。我一直在寻找类似的东西。你能看一下这里到底发生了什么吗?:因为我在范围内(len(text)-1,-1,-1)??非常感谢你解释发生了什么。既然你让我看到了,我不明白我怎么没看到。没问题。我们都去过那里。毕竟,这是我们学习的方式。非常感谢你解释发生了什么。既然你让我看到了,我不明白我怎么没看到。没问题。我们都去过那里。毕竟,这是我们学习的方式。