【问题标题】:removing key value pairs by matching values python通过匹配值python删除键值对
【发布时间】:2013-10-22 02:46:26
【问题描述】:

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

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

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

【问题讨论】:

  • {key:value for key, value in dict_obj.items() if '.' not in value}

标签: python dictionary key-value


【解决方案1】:

使用字典理解创建一个没有那些不需要的值的新字典。这是一个如何做的例子:

>>> 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 可以避免创建中间列表并提高性能。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 2022-08-17
      • 2021-05-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-24
      相关资源
      最近更新 更多