0

辞書 d とリスト lst が与えられた場合、キーが lst の要素であるすべての要素を辞書から削除します。ディクショナリのキーではないリストの要素は、変数 not_found に関連付けられた新しいセットに追加する必要があります。たとえば、辞書 {1:2, 3:4, 5:6, 7:8} とリスト [1, 6, 7] を指定すると、結果の辞書は {3:4, 5:6} になり、 set not_found には 6 が含まれます。

これは私のコードがどのように見えるかです:

not_found = ()
for i in d:
 if d[i] in lst:
    not_found.append(d[i])
            del d[i]
4

3 に答える 3

2

繰り返し処理中にリスト/辞書から削除すると、項目をスキップします。dict繰り返し処理中にサイズが変更された場合、エラーが発生するはずです。

通常、保持する必要がある項目を含む新しい dict を作成するのが最善です

lstあなたの場合、代わりに反復する方が良いです

>>> d =  {1:2, 3:4, 5:6, 7:8}
>>> lst = [1, 6, 7]
>>> not_found = {k for k in lst if k not in d}
>>> for k in lst:
...    if k in d:
...        del d[k]
>>> d
{3: 4, 5: 6, 7: 8}
于 2013-07-19T01:11:10.543 に答える
-2
for i in lst:
 if i in d:
  del d[i]
于 2018-11-15T20:00:05.380 に答える