Python 3.3+collectionsпонятие
collections.abc.ItemsView
collections.abc — протоколы
Тип представления пар словаря (d.items()).
Синтаксис
isinstance(obj, collections.abc.ItemsView)
Представление не копирует словарь, а смотрит в него: изменения в d видны сразу, зато добавление или удаление ключей прямо во время цикла по items() обрывает итерацию с RuntimeError. Ещё одна неочевидная деталь — items() ведёт себя как множество и поддерживает операции & | - ^, но только пока все значения хешируемы; у values() таких возможностей нет никогда.
Примеры
import collections.abc as abc
print(isinstance({}.items(), abc.ItemsView)) # → True
print(isinstance({}.keys(), abc.ItemsView)) # → False
print(list({'a': 1, 'b': 2}.items())) # → [('a', 1), ('b', 2)]
print(('a', 1) in {'a': 1, 'b': 2}.items()) # → True
print(isinstance({}.items(), abc.Set)) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности