セットからエントリを削除する際に問題があります。リスト内の要素と一致する要素をセットから削除する
# Remove all out-of-stock items from our list
# This is O(n^3), unfortunately.
for x in oos:
for asin in asins:
if x == asin[0]:
del asin
'asins' は、このように作成されたタプルの集合、次のとおりです。
asins.add(tuple((asin, c, s)))
OOSリストです。私は 'oos'にも存在する 'asins'のすべてのエントリを削除しようとしています。残念ながら、「delin」は「asins」からエントリを削除しないので実際には機能しません。
*削除されない*重複している最初の要素がある場合、これは機能しません。最初の要素をキーとしてリストを構築する 'defaultdict'のようなものが必要です。 –
OPが最初のタプル値のみに基づいてアイテムを削除する場合、* all *はいずれにしても削除されます。 – poke
私は*削除されていない値について話しています。重複キーは前のタプルをオーバーライドします。 –