在每个分割上运行循环

2024-10-03 11:20:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在回答关于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

Tags: text字母it单词split末尾pig标点符号
2条回答

这样做:

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))
  1. 您需要在循环外声明ans,并继续附加到它。如果你只是在循环中调用它,每次都会被一个新的值替换,你只会得到一个单词

  2. return语句不应是for循环的一部分。如果正确缩进,使其位于循环之外,则应获得所需的输出

def pig_it(text):
    splits = text.split()
    ans=[]
    for split in splits:
        ans.append(split[1::] + split[0] + "ay")
    return " ".join(ans)

相关问题 更多 >