python - 根据某些条件从Python字典中删除键

标签 python dictionary

如何根据某些条件从Python字典中删除键?

字典示例:

a = { 
  'k': 'abc',
  'r': 20,
  'c': { 
         'd': 'pppq',
         'e': 22,
         'g': 75
  },
  'f': ''}

我想删除所有值为字符串类型的条目。它可以包含任何键的字典。还应该处理嵌套的键值对。

最佳答案

你可以这样做:

a = {
    'k': 'abc',
    'r': 20,
    'c': {
        'd': 'pppq',
        'e': 22,
        'g': 75
    },
    'f': ''}


def remove_string_values(d):
    result = {}
    for k, v in d.items():
        if not isinstance(v, str):
            result[k] = remove_string_values(v) if isinstance(v, dict) else v
    return result


res = remove_string_values(a)
print(res)

输出

{'r': 20, 'c': {'e': 22, 'g': 75}}

关于python - 根据某些条件从Python字典中删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64785224/

相关文章:

C++ 使用来自 const 函数的映射调用指向成员的指针

python - 如何使用 max() 函数找到字典中最大值对应的键?

Python PyQt 信号并不总是有效

python - 如何在 Python 中切换字典的嵌套结构

python - 模板语法错误

python - 我有一个存储为 numpy 数组的字典,典型的键的格式为

python - 将元组作为值附加到字典中的现有键

Java 8 流 - 增量收集/部分减少/间歇映射/...这甚至叫什么?

Python:生成器表达式与产量

python - 创建具有共享轴的 python seaborn 热图的 2x2 网格