Подтвердить что ты не робот

Что такое dict_keys, dict_items и dict_values

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

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

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

Но мой вопрос:

  • Почему эти три типа существуют? Или что их использование?
4b9b3361

Ответ 1

Что нового в документе 2.7 - это одно место, которое они вводят. Эти "взгляды" были введены (предлагаемый здесь) для Python 3 (и, как вы видели, backported до 2.7, как вы видели) из всех миров для кусков dict, на которые они ссылаются.

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