擅长:python、mysql、java
<p>如果要从<a href="https://docs.python.org/2/tutorial/datastructures.html#more-on-lists" rel="nofollow">list</a>中删除某个项,请使用:</p>
<pre><code>del xs[i]
</code></pre>
<p>其中<code>i</code>是索引。(<em>例如:基于搜索的歌曲索引</em>)。你知道吗</p>
<p><code>list.remove()</code>用于从列表中删除匹配的元素,而不是“ith”项。你知道吗</p>
<p>您可能还会发现<code>list</code>在这里不是合适的数据结构?也许您可以尝试将键/值对存储在<code>dict</code>中。e、 克:</p>
<pre><code>my_songs = {}
my_aongs["My Song Title"] = MySong(title, description, length)
</code></pre>
<p>您可以稍后通过其键删除歌曲:</p>
<pre><code>del my_songs["My Song Title"]
</code></pre>
<p>标题是你的钥匙。这样可以避免进行O(n)搜索。你知道吗</p>
<p><strong>更新:</strong></p>
<p>您的<code>.remove()</code>方法应该更像以下内容:</p>
<pre><code>def remove(self, title):
for i, song in enumerate(self._mySongs):
if song.getTitle() == title:
del self._mySongs[i]
return
print("Song not found!")
</code></pre>
<p>这里我们使用的是<code>list</code>的迭代协议,使用的是<code>for x in xs:</code>,而不是使用while循环和手动记账。内置函数<code>enumerate()</code>也用来给我们一个索引到我们正在迭代的列表中(<em>即:它在序列中的位置</em>)。你知道吗</p>