Python:For循环无法正常工作
Posted
技术标签:
【中文标题】Python:For循环无法正常工作【英文标题】:Python: For loop not working properly 【发布时间】:2017-02-03 21:50:43 【问题描述】:为什么 for 循环不能正常工作?它只返回一个元素。
1.
rx = ['abc', 'de fg', 'hg i']
def string_m(a=rx):
for i in a:
l = re.sub(" ","/",i)
r = l.split("/")
r.reverse()
rx = " ".join(r)
return rx
a=string_m(rx)
print(a)
输出:
abc
2.
rx = ['abc', 'de fg', 'hg i']
def string_m(a=rx):
for i in a:
l = re.sub(" ","/",i)
r = l.split("/")
r.reverse()
rx = " ".join(r)
return rx
a=string_m(rx)
print(a)
输出:
i hg
-- 谁能帮我看看我做错了什么?
【问题讨论】:
这是做什么的? 缩进你的 for 循环,让它成为函数的一部分... 你需要维护一个中间列表来存储反向项 前面已经回答了一个几乎相同的问题。请参阅此说明:***.com/questions/39702039/… @AvinashRaj 不使用 reverse() 方法 docs 请注意,这是用于列表而不是字符串。 【参考方案1】:rx = ['abc', 'de fg', 'hg i']
def string_m(a=rx):
for i in range(len(a)):
rx = a[i]
return rx
a=string_m(rx)
print(a)
【讨论】:
【参考方案2】:import re
rx = ['abc', 'de fg', 'hg i']
def string_m(a=rx):
new = []
for i in a:
l = re.sub(" ","/",i)
r = l.split("/")
#r.reverse()
rx = " ".join(r)
new.append(rx)
new.reverse()
return new
a=string_m(rx)
print(a)
您最大的问题是您返回 for 循环的第一次迭代的结果,而不是在 for 循环完成之后。
另一个问题是不能用 reverse() 方法反转字符串。如果你想反转输出,试试上面的。
【讨论】:
列表new
应该定义在函数内部,除非你想要那些奇怪的副作用。你是对的,你不能就地反转一个字符串,但他正在反转一个完全有效的列表。以上是关于Python:For循环无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
带有嵌套for循环的Javascript多维数组-无法正常工作