29

我有一个字典,其中名称作为键, (age, Date of Birth) 元组作为这些键的值。例如

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

我想删除值元组中年龄 > 30 的所有键,我该怎么做?我正在使用dict[name][0]where dict 是我的字典来访问每个键的年龄。

4

1 回答 1

52

通常的方法是创建一个仅包含您要保留的项目的新字典:

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

如果您需要原地更改原始字典,可以使用for-loop:

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

请注意,这list(data.items())会创建字典项目的浅表副本,即包含对所有键和值的引用的新列表,因此在循环内修改原始字典是安全的。

于 2012-08-13T17:24:23.757 回答