Как удалить все словари из orderedDictionary в python

У меня есть словарь с некоторыми клавишами, указывающими на упорядоченные словари, и некоторые клавиши, указывающие на строки, Как удалить все упорядоченные словари и сохранить их в отдельный словарь.

2 ответа

  1. >>> from collections import OrderedDict
    >>> mixed_dict = {'a': 'b', 'c': OrderedDict([('d', 'e')])}
    >>> {k: v for k, v in mixed_dict.items() if isinstance(v, OrderedDict)}
    {'c': OrderedDict([('d', 'e')])}
    >>> {k: v for k, v in mixed_dict.items() if not isinstance(v, OrderedDict)}
    {'a': 'b'}
    
  2. Простое решение состоит в том, чтобы отфильтровать все, что не является OrderedDictиспользованием понимания диктата:

    >>> from collections import OrderedDict
    >>> d = {'a': 'b', 'c':OrderedDict([('a', 'data1')]), 'd': OrderedDict([('a', 'data1')])}
    >>> res = {key : value for key, value in d.items() if isinstance(value, OrderedDict)}
    >>> res
    {'c': OrderedDict([('a', 'data1')]), 'd': OrderedDict([('a', 'data1')])}
    >>>