Python 在每个分割上运行循环

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:

我正在回答关于codebattle的问题,但是我被困在试图完成一个循环中。问题是把每个单词的第一个字母移到它的末尾,然后在单词的末尾加上“ay”。保持标点符号不变。例如,pig_it(“pig拉丁语很酷”)=igPay atinlay siay oolcay。我的基本解决方案是拆分所有单词,并对它们运行一个循环,对每个单词执行操作。但是,它仅在第一次拆分时运行

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))