擅长:python、mysql、java
<p>迭代时从列表中删除元素的正确方法是迭代列表的副本:这样做不会得到意外的结果,因为您没有编辑正在迭代的列表。你知道吗</p>
<pre><code>data = {
"results": [{
"price_str": "results awaited",
"marque": "samsung"
}, {
"price_str": "sold",
"marque": "apple"
}
]
}
for results in data.itervalues():
# You don't need to check if the list is empty
# The for loop doesn't start if the list is empty
# if not results == []:
# Iterates over a copy of the list. So when you modify the original
# list, you do not modify the copy that you iterate over.
for result in results[:]:
price_str = result["price_str"]
if "await" in price_str:
results.remove(result)
print(data)
</code></pre>