Dicionário Python (ditado) para processamento de laço: chaves(), valores(), itens()

O negócio

Para percorrer os elementos de um objecto de dicionário Python com um para declaração, utilize o seguinte método no objecto de dicionário, que também pode ser combinado com lista() para obter uma lista de todas as chaves e valores no dicionário.

  • keys():Para processamento de laço para cada chave de elemento
  • values():Para processamento de laço para cada valor de elemento
  • items():Para processamento de laço para a chave e valor de cada elemento

O seguinte objecto de dicionário é um exemplo.

d = {'key1': 1, 'key2': 2, 'key3': 3}

As chaves podem ser obtidas virando o objecto do dicionário para uma declaração tal como está.

for k in d:
    print(k)
# key1
# key2
# key3

keys(): Para processamento de laço para cada chave de elemento

Como mencionado acima, as chaves podem ser obtidas rodando o objecto do dicionário tal como está numa declaração, mas o método das chaves() também pode ser utilizado.

for k in d.keys():
    print(k)
# key1
# key2
# key3

O método key() devolve a classe dict_keys. Se quiser fazer uma lista, pode usar a função list().

keys = d.keys()
print(keys)
print(type(keys))
# dict_keys(['key1', 'key2', 'key3'])
# <class 'dict_keys'>

k_list = list(d.keys())
print(k_list)
print(type(k_list))
# ['key1', 'key2', 'key3']
# <class 'list'>

O DICT_KEYS é capaz de realizar operações de conjunto.

values(): Para processamento de laço para cada valor de elemento

Se quiser realizar o processamento de loop para cada valor de elemento, utilize o método dos valores().

for v in d.values():
    print(v)
# 1
# 2
# 3

O método values() devolve a classe dict_values. Se quiser fazer uma lista, pode usar a função list().

values = d.values()
print(values)
print(type(values))
# dict_values([1, 2, 3])
# <class 'dict_values'>

v_list = list(d.values())
print(v_list)
print(type(v_list))
# [1, 2, 3]
# <class 'list'>

Uma vez que os valores podem sobrepor-se, a operação definida de dict_values não é suportada.

items(): Para processamento de laço para a chave e valor de cada elemento

Se quiser realizar um processo de loop tanto para a chave como para o valor de cada elemento, utilize o método dos itens().

for k, v in d.items():
    print(k, v)
# key1 1
# key2 2
# key3 3

(key, value)Assim, pode ser recebido como um tuple.

for t in d.items():
    print(t)
    print(type(t))
    print(t[0])
    print(t[1])
    print('---')
# ('key1', 1)
# <class 'tuple'>
# key1
# 1
# ---
# ('key2', 2)
# <class 'tuple'>
# key2
# 2
# ---
# ('key3', 3)
# <class 'tuple'>
# key3
# 3
# ---

O método dos itens() devolve a classe dict_items. Se quiser fazer uma lista, pode usar a função list(). Cada elemento é um tuple.
(key, value)

items = d.items()
print(items)
print(type(items))
# dict_items([('key1', 1), ('key2', 2), ('key3', 3)])
# <class 'dict_items'>

i_list = list(d.items())
print(i_list)
print(type(i_list))
# [('key1', 1), ('key2', 2), ('key3', 3)]
# <class 'list'>

print(i_list[0])
print(type(i_list[0]))
# ('key1', 1)
# <class 'tuple'>

DICT_ITEMS também pode realizar operações de conjunto.