Python 在每个分割上运行循环
我正在回答关于codebattle的问题,但是我被困在试图完成一个循环中。问题是把每个单词的第一个字母移到它的末尾,然后在单词的末尾加上“ay”。保持标点符号不变。例如,pig_it(“pig拉丁语很酷”)=igPay atinlay siay oolcay。我的基本解决方案是拆分所有单词,并对它们运行一个循环,对每个单词执行操作。但是,它仅在第一次拆分时运行Python 在每个分割上运行循环,python,string,loops,split,Python,String,Loops,Split,我正在回答关于codebattle的问题,但是我被困在试图完成一个循环中。问题是把每个单词的第一个字母移到它的末尾,然后在单词的末尾加上“ay”。保持标点符号不变。例如,pig_it(“pig拉丁语很酷”)=igPay atinlay siay oolcay。我的基本解决方案是拆分所有单词,并对它们运行一个循环,对每个单词执行操作。但是,它仅在第一次拆分时运行 def pig_it(text): splits = text.split() for split in splits:
def pig_it(text):
splits = text.split()
for split in splits:
ans = split[1::] + split[0] + "ay"
return ans
ans
,并继续附加到它。如果你只是在循环中调用它,每次都会被一个新的值替换,你只会得到一个单词
return
语句不应是for
循环的一部分。如果正确缩进,使其位于循环之外,则应获得所需的输出
def piglatin(s):
new = []
s = s.split(' ')
for i in s:
main = list(i)
move = main[0]
main.remove(move)
main.append(move + 'ay')
new.append(''.join(main))
print(' '.join(new))
循环中有一个
return
,它会立即退出函数。这只会返回一个单词。@JohnGordon,是的,我的错。我已经编辑了答案并添加了解释。耶,这就是我要找的。谢谢@Koedeen,你能把它标记为答案吗?这是我需要的
def piglatin(s):
new = []
s = s.split(' ')
for i in s:
main = list(i)
move = main[0]
main.remove(move)
main.append(move + 'ay')
new.append(''.join(main))
print(' '.join(new))