Python Glossary English

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Сообщить о неточности