我刚开始使用Python中的函数。我的目标是循环显示带有水果的列表,并为每个水果向后打印字母。当遇到特殊字符时,它将停止并继续前进到下一个水果。我尝试使用循环来执行此操作,并每次都将其添加到索引中,但这只会正确打印第一个水果。如果我只将每个水果的代码放五遍,那么效果很好。请帮助我修复索引。代码在下面。
def reverse(li):
c = 1
while c == 1:
index = 0
for c in reversed(li[index]):
if c.isalpha():
print(c, end="")
index += 1
else:
print()
index += 1
break
fruits = ['ap!ple','bana@na','ma%ngo','#orange','pine*apple']
reverse(fruits)
答案 0 :(得分:2)
您仅循环浏览列表的第一个元素(reversed(li[index])
)。
def reverse(li):
for word in li:
for rev_word in reversed(word):
if rev_word.isalpha():
print(rev_word, end="")
else:
print()
break
fruits = ['ap!ple','bana@na','ma%ngo','#orange','pine*apple']
reverse(fruits)
输出:
elp
an
ogn
egnaro
elppa
答案 1 :(得分:2)
您将index
设置为0,因此仅使用第一个条目。另外,c
在第一次迭代之后就永远不等于1
,因此while循环仅运行一次。
最好创建一个新字符串,例如takewhile
并在所有单词的for循环中打印出来:
from itertools import takewhile
def reverse(words):
for word in words:
print(''.join(takewhile(str.isalpha, reversed(word))))
fruits = ['ap!ple','bana@na','ma%ngo','#orange','pine*apple']
reverse(fruits)