Я столкнулся с этими тремя типами, когда я использовал Collections.counter
VIOLKEAYS (), ViewTems () и ViewValues () методы.
Значения, которые вернули три метода, имеют типы Dict_Keys
, Dict_Items
и DICT_Values
.
Они нелетены, как я заметил.
Но мой вопрос, почему эти три типа существуют? Или какое их использование?
Что нового в 2.7 документе, это одно место, где они представлены. Эти «представления» были введены (предложены здесь ) для Python 3 (и, как вы видели, перенесены на 2.7), чтобы служить лучшими из всех миров для кусочков диктата, к которому они относятся к.
Раньше у нас были методы keys
/ values
/ items
, которые просто составляли списки. Это приводит к потере памяти путем копирования информации, содержащейся в диктовке, и у нас были методы iterkeys
/ itervalues
/ iteritems
, которые не тратили эту память, но были не очень полезны (единственное, что вы могли сделать, это перебрать их Вы могли сделать это только один раз). Эти новые представления имеют логические особенности, такие как операции над множествами, эффективное сравнение и возможность многократного повторения.