sábado, 20 de janeiro de 2024

Métodos úteis dos Dicionários em Python

pessoa = {
    'nome': 'Ayrton',
    'sobrenome': 'Pontes'
}
# Métodos uteis dos dicionários em Python

# len - quantas chaves
print(len(pessoa))

# keys - interável com as chaves
print(list(pessoa.keys())) # por ser iterável, pode usar com o for

# values - interável com os valores
print(list(pessoa.values())) # por ser iterável, pode usar com o for

# items - iterável com chaves e valores
print(list(pessoa.items()))
    # Com o for:
for chave, valor in pessoa.items():
    print(chave, valor)
   
# setdefault - adiciona valor se a chave não existe
pessoa.setdefault('idade', 0)
print(pessoa['idade'])

# copy - retorna uma cópia rasa (shallow copy)
d1 = {
    'c1': 2,
    'c2': 3
}
d2 = d1  # não faz cópia

d2['c1'] = 100 # afeta d1

print(d1) # {'c1': 100, 'c2': 3}

d2 = d1.copy() # faz uma cópia (rasa -> não funciona pra itens mutaveis dentro de dicionarios)

d2['c1'] = 300

print(d1) # {'c1': 100, 'c2': 3}
print(d2) # {'c1': 300, 'c2': 3}

#agora vamos colocar um item mutavel dentro de um dicionário:

d3 = {
    'c1': 2,
    'c2': 3,
    'l1': [0, 1, 2]
}

d4 = d3.copy() # não consegue fazer uma cópia (só rasa),
# pois há um item mutavel em d3

print(d4) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 2]}

d4['l1'][2] = 150

print(d3) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 150]}
print(d4) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 150]}

# caso queira fazer uma deep copy (cópia mesmo com itens mutáveis),
# usar a biblioteca copy
import copy

d3 = {
    'c1': 2,
    'c2': 3,
    'l1': [0, 1, 2]
}

d4 = copy.deepcopy(d3) #cópia real (deep copy) de dicionario com itens
# mutáveis

d4['l1'][2] = 150

print(d3) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 2]}
print(d4) # {'c1': 2, 'c2': 3, 'l1': [0, 1, 150]}

# get - obtém uma chave

p1 = {
    'nome': 'Ayrton',
    'sobrenome': 'Pontes'
}

print(p1.get('nome')) # Ayrton
print(p1.get('idade', 0)) # 0 (retorna o 0 em caso de exceção)

# pop - apaga um item com a chave específica (del)

nome = p1.pop('nome') # apaga, mas pode colcoar na memoria em uma
# variavel
print(nome)
print(p1)



# popitem - apaga o último item adicionado

sobrenome = p1.popitem()
print(sobrenome) # ('sobrenome', 'Pontes')
print(p1) #{}
# update - atualiza um dicionario com outro

p1.update({
    'nome': 'novo valor',
    'idade': 34
})

print(p1) # {'nome': 'novo valor', 'idade': 34}

tupla = ('sobrenome', 'Pontes'), ('peso', 80) # poderia ser uma lista tbm

p1.update(tupla)

print(p1) # {'nome': 'novo valor', 'idade': 34, 'sobrenome': 'Pontes', 'peso': 80}

 

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.