我知道这个问题已经被问过很多很多次了。我明白为什么修改我正在迭代的列表不起作用。我想出了一个想法,但我想就它是否会崩溃,以及更好的,也许更 Pythonic 的方式来做它可能是反馈。我想取一个字符串并每 3 个单词插入一个单词“like”。
def hedge(string):
a = string.split()
keep_up = 0 # To 'keep up' with the changing length of a
for i in range(3, len(a), 3):
a.insert(i+keep_up, 'like')
keep_up += 1 # Add 1 to keep_up every time 'like' is added, because this
return ' '.join(a) # messes with the index
这将返回一个字符串,如:
他的手掌像汗水一样,膝盖无力,像手臂一样沉重。就像他的毛衣已经吐了一样,就像妈妈的意大利面一样。
创建一个新变量似乎不是最简单的方法。有没有更好的办法?
注意:在找到这个解决方案之前,我尝试了几种不同的方式迭代“a”的副本,但由于“a”的长度仍在变化,我看不出这会有什么帮助。
在此先感谢,阿德里安