Что такое dict_keys, dict_items и dict_values? - PullRequest
25 голосов
/ 04 сентября 2011

Я сталкивался с этими тремя типами, когда использовал методы collections.Counter viewkeys (), viewitems () и viewvalues ​​().

Значения, возвращаемые этими тремя методами, имеют типы dict_keys, dict_items и dict_values.

Они итеративны, как я заметил.

Но мой вопрос: почему существуют эти три типа? Или как они используются?

1 Ответ

31 голосов
/ 04 сентября 2011

Что нового в документе 2.7 - это одно из мест, где они представлены.Эти «представления» были введены (предложено здесь ) для Python 3 (и, как вы видели, перенесены на 2.7), чтобы служить лучшими из всех миров для кусочков диктата, к которому они относятсяк.

До того, как у нас были методы keys / values / items, которые просто составляли списки.Это тратит впустую память, копируя информацию dict, и у нас были методы iterkeys / itervalues / iteritems, которые не тратили эту память, но были не очень полезны (единственное, что вы могли сделать, это перебрать их, иВы могли сделать это только один раз).Эти новые представления имеют логические функции, такие как операции над множествами, эффективное сравнение и возможность многократного повторения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...