29

キーとして名前を持ち、それらのキーの値として (年齢、生年月日) タプルを持つ辞書があります。例えば

dict = {'Adam' : (10, '2002-08-13'),
        'Eve'  : (40, '1972-08-13')}

値タプルの age が 30 を超えるすべてのキーを削除したいのですが、どうすれば削除できますか? dict[name][0]dict が私の辞書である場所を使用して、各キーの年齢にアクセスしています。

4

1 に答える 1

52

通常の方法は、保持したい項目だけを含む新しい辞書を作成することです:

new_data = {k: v for k, v in data.items() if v[0] <= 30}

元の辞書を変更する必要がある場合は、ループを使用できますfor

for k, v in list(data.items()):
    if v[0] > 30:
        del data[k]

list(data.items())ディクショナリのアイテムの浅いコピー、つまりすべてのキーと値への参照を含む新しいリストを作成することに注意してください。したがって、ループ内で元の dict を変更しても安全です。

于 2012-08-13T17:24:23.757 に答える