15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

print(value1, value2)

>>>

1 red

2 blue

Dicionário default

Os dicionários são úteis para fazer registros e controlar estatísticas. Um dos

problemas que os acometem é que não se pode considerar que qualquer chave já

esteja presente antecipadamente. Com isso, não é muito prático realizar tarefas

simples como incrementar um contador armazenado em um dicionário.

stats = {}

key = 'my_counter'

if key not in stats:

stats[key] = 0

stats[key] += 1

A classe defaultdict do módulo collections simplifica a vida do programador ao

armazenar automaticamente um valor-padrão quando a chave não existir. A

única coisa que precisamos definir é uma função que retorne o valor default toda

vez que uma chave não possa ser encontrada. No exemplo a seguir, a função

nativa int retorna o valor 0 (consulte o Item 23: “Aceite funções para interfaces

simples em vez de classes” para ver outro exemplo). Agora, incrementar o

contador é bastante simples.

stats = defaultdict(int)

stats['my_counter'] += 1

Heap Queue, a “fila-pilha”

As pilhas (heaps 2 ) são estruturas de dados muito úteis para manter uma fila de

prioridade. O módulo heapq oferece funções para criar pilhas dentro de um

objeto do tipo list padrão do Python, com funções como heappush, heappop e

nsmallest.

Os itens de uma prioridade podem ser inseridos na pilha em qualquer ordem.

a = []

heappush(a, 5)

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!