擅长:python、mysql、java
<h2>问题描述</h2>
<p>问题是您正在对当前迭代的列表进行变异。由于<code>Kaplan</code>和<code>Endocrine</code>紧随其后,内分泌将被跳过,因为它接管了<code>Kaplan</code>的索引,循环将继续到下一个索引(即内分泌的旧索引)。如果您在自己的代码中在Kaplan和endometric之间添加另一个字符串,则很容易说明这一点,您将看到这两个字符串都被删除,因为中间的单词将被跳过</p>
<h2>解决方案</h2>
<p>最佳做法是创建一个新的列表,而不删除要删除的项目,而不是修改输入列表</p>
<p>我建议使用列表理解来解决这个问题,并创建一个新的列表</p>
<pre class="lang-py prettyprint-override"><code>text = """Thyroid Disorders Understanding Concepts Kaplan Endocrine A Focused Review Tests n/a 88% (35/40)
"""
line = ''
for character in text:
line += character # append every character to string
if character == ')': # closing parenthesis signals end of one line
print('Original line: '+ line) # sanity check
new_list = [word for word in line.split() if word not in ["Kaplan", "Endocrine"]] # loop through each list item, remove if needed
print(new_list)
</code></pre>