d[k]
e ao teste de associação de chaves usando k in d
. As duas operações levam tempo constante. Os dicionários não congelados são mutáveis e podem ser atualizados por meio da atribuição a d[k]
ou da chamada de determinados métodos. Os dicionários são iteráveis. A iteração gera a sequência de chaves em ordem de inserção. A ordem de iteração não é afetada pela atualização do valor associado a uma chave, mas é afetada pela remoção e reinserção de uma chave.
d = {0: 0, 2: 2, 1: 1} [k for k in d] # [0, 2, 1] d.pop(2) d[0], d[2] = "a", "b" 0 in d, "a" in d # (True, False) [(k, v) for k, v in d.items()] # [(0, "a"), (1, 1), (2, "b")]
Há quatro maneiras de criar um dicionário:
- Uma expressão de dicionário
{k: v, ...}
gera um novo dicionário com as entradas de chave-valor especificadas, inseridas na ordem em que aparecem na expressão. A avaliação falhará se duas expressões-chave produzirem o mesmo valor. - Um
{k: v for vars in seq}
de compreensão de dicionário gera um novo dicionário em que cada par de chave-valor é inserido na ordem de iteração de repetição. É permitido usar duplicatas: a primeira inserção de uma determinada chave determina sua posição na sequência e a última, o valor associado.{k: v for k, v in (("a", 0), ("b", 1), ("a", 2))} # {"a": 2, "b": 1} {i: 2*i for i in range(3)} # {0: 0, 1: 2, 2: 4}
- Uma chamada para a função dict integrada retorna um dicionário contendo as entradas especificadas, que são inseridas na ordem dos argumentos e nos argumentos posicionais antes de nomeados. Assim como no caso de compreensões, é permitido usar chaves duplicadas.
- A expressão de união
x | y
produz um novo dicionário combinando dois dicionários existentes. Se os dois dicionários tiverem uma chavek
em comum, o valor da chave do dicionário do lado direito (em outras palavras,y[k]
) vencerá. A variante|=
do operador de união modifica um dicionário no local. Exemplo:d = {"foo": "FOO", "bar": "BAR"} | {"foo": "FOO2", "baz": "BAZ"} # d == {"foo": "FOO2", "bar": "BAR", "baz": "BAZ"} d = {"a": 1, "b": 2} d |= {"b": 3, "c": 4} # d == {"a": 1, "b": 3, "c": 4}
Participantes
limpar
None dict.clear()Remover todos os itens do dicionário.
get
unknown dict.get(key, default=None)Retorna o valor de
key
se key
estiver no dicionário. Caso contrário, default
. Se default
não for fornecido, o padrão será None
, para que o método nunca gere um erro.
Parâmetros
Parâmetro | Descrição |
---|---|
key
|
obrigatório A chave a ser procurada. |
default
|
default = None O valor padrão a ser usado (em vez de None) se a chave não for encontrada. |
items
list dict.items()Retorna a lista de tuplas de chave-valor:
{2: "a", 4: "b", 1: "c"}.items() == [(2, "a"), (4, "b"), (1, "c")]
chaves
list dict.keys()Retorna a lista de chaves:
{2: "a", 4: "b", 1: "c"}.keys() == [2, 4, 1]
pop
unknown dict.pop(key, default=unbound)Remove um
key
do dicionário e retorna o valor associado. Se nenhuma entrada com essa chave for encontrada, não remova nada e retorne o valor default
especificado. Se nenhum valor padrão tiver sido especificado, ocorrerá uma falha.
Parâmetros
Parâmetro | Descrição |
---|---|
key
|
obrigatório A chave. |
default
|
default = não vinculado um valor padrão se a chave estiver ausente. |
popitem
tuple dict.popitem()Remova e retorne o primeiro par de
(key, value)
do dicionário. popitem
é útil para iterar de forma destrutiva em um dicionário, como geralmente usado em algoritmos de conjunto. Se o dicionário estiver vazio, a chamada de popitem
vai falhar.
setdefault
unknown dict.setdefault(key, default=None)Se
key
estiver no dicionário, retornará o valor correspondente. Caso contrário, insira a chave com um valor default
e retorne default
. O padrão de default
é None
.
Parâmetros
Parâmetro | Descrição |
---|---|
key
|
obrigatório A chave. |
default
|
default = None um valor padrão se a chave estiver ausente. |
update
None dict.update(pairs=[], **kwargs)Atualiza o dicionário primeiro com o argumento posicional opcional
pairs
e, em seguida, com os argumentos de palavra-chave opcionais.
Se o argumento posicional estiver presente, ele precisa ser um dict, iterable ou None.
Se for um dicionário, os pares de chave-valor serão inseridos nele. Se for iterável, deve fornecer uma sequência de pares (ou outros iteráveis de comprimento 2), cada um dos quais é tratado como um par de chave-valor a ser inserido.
Cada argumento de palavra-chave name=value
faz com que o par de nome/valor seja inserido nesse dicionário.
Parâmetros
Parâmetro | Descrição |
---|---|
pairs
|
default = [] Pode ser um dicionário ou uma lista de entradas. As entradas precisam ser tuplas ou listas com exatamente dois elementos: chave e valor. |
kwargs
|
obrigatório Dicionário de entradas adicionais. |
valores
list dict.values()Retorna a lista de valores:
{2: "a", 4: "b", 1: "c"}.values() == ["a", "b", "c"]