2

我正在搜索句点“。” 在字典中并尝试删除键/值对(如果我找到它)

if "." in dict.values():
    #delete key, value pair from the dictionary

我确信这很简单,但我似乎找不到解释。谢谢你的帮助。

4

2 回答 2

6

使用字典理解创建一个没有那些不需要的值的新字典。以下是如何执行此操作的示例:

>>> old_dict = {'one': '.', 'two': 2, 'three':3, 'four':'.'}
>>> new_dict = {k:v for k,v in old_dict.iteritems() if not v == '.'}
>>> new_dict
 {'three': 3, 'two': 2}

使用iteritems而不是items避免创建中间列表并提高性能。

于 2013-10-14T13:56:14.230 回答
1

如果您不想复制您的字典(例如,如果字典很大,或者您在其他地方有对它的引用),那么您应该这样做:

ks = [k for k in d if d[k]=='.']
for k in ks:
    d.pop(k)

如上所示,创建要提前删除的密钥列表。您不想在迭代字典时修改它。

于 2015-02-11T20:57:43.667 回答