リストを反復処理しながら、リストから要素を削除する必要があります(コードで参照されているため、新しいリストを作成できません)。
私が思いついた最高のものは次のとおりです。
last_index = len(somelist) - 1
for (index,item) in enumerate(reversed(somelist)):
if somecondition(item):
del somelist[last_index - index]
より良い選択肢はありますか?私はこの投稿とこれも見ましたが、提供されたソリューションはどれも効率的でも簡潔でもありません(IMHO)。