<p>我有一长串难以破译的文本,每一行都用括号隔开(只包括一行,因为我无法让这个程序在哪怕一行上运行):</p>
<pre><code>"Thyroid Disorders Understanding Concepts Kaplan Endocrine Focused Review Tests n/a 88% (35/40)"
</code></pre>
<p>我正试图将其格式化为这样,并将其附加到一个文件中:</p>
<pre><code>"Thyroid Disorders Understanding Concepts 88% (35/40)"
</code></pre>
<p>因此,我需要从每个字符串中删除字符串“Kaplan”、“endometric”、“Focused”、“Review”、“Tests”和“n/a”,并去掉制表符/换行符</p>
<p>这是我的密码:</p>
<pre><code>text = """Thyroid Disorders Understanding Concepts Kaplan Endocrine A Focused Review Tests n/a 88% (35/40)
"""
line = ''
for character in text:
line = line + character # append every character to string
if character == ')': # closing parenthesis signals end of one line
print('Original line: '+ line) # sanity check
line_as_list = line.split() # removes tabs/newlines and makes it easier to remove certain strings
for word in line_as_list: # loop through each list item, remove if needed
if word == 'Kaplan':
line_as_list.remove(word)
print(line_as_list) # another sanity check, 'Kaplan' is gone
if word == 'Endocrine': # never runs
line_as_list.remove(word)
print(line_as_list )
# Intentionally left out the rest of the words that need to be removed
</code></pre>
<p>这将返回以下内容:</p>
<pre><code>"Original line: Thyroid Disorders Understanding Concepts Kaplan Endocrine A Focused Review Tests n/a 88% (35/
40)"
['Thyroid', 'Disorders', 'Understanding', 'Concepts', 'Endocrine', 'A', 'Focused', 'Review', 'Tests',
'n/a', '88%', '(35/40)']
</code></pre>
<p>第一个<code>if</code>语句下的代码执行我想要的方式,但是<code>if word == 'Endocrine'</code>下的代码块永远不会运行</p>
<p>我试过了</p>
<pre><code>if word == 'Kaplan' or word == 'Endocrine':
line_as_list.remove(word)
</code></pre>
<p>及</p>
<pre><code>if word == 'Kaplan':
line_as_list.remove(word)
elif word == 'Endocrine':
line_as_list.remove(word)
</code></pre>
<p>两者都没有效果,“卡普兰”是唯一被删除的词。谢谢你在这方面的帮助</p>
<p>更改此行:</p>
<pre><code>for word in line_as_list:
</code></pre>
<p>致:</p>
<pre><code>for word in line_as_list.copy():
</code></pre>
<p>这样,当您从原始列表中删除“Kaplan”时,它不会影响列表上的迭代</p>