Bem vindo de volta.
Agora vamos gastar uma boa parte deste curso, construindo alguns projetos e usando
alguns módulos Python embutidos, bem como usando algumas bibliotecas populares de terceiros do Índice de Pacotes Python.
No entanto, eu queria apenas mostrar a você um vídeo rápido sobre alguns dos módulos úteis que
eu pessoalmente gosto nos módulos integrados que temos do Python.
E alguns desses módulos realmente úteis nos permitem ter mais tipos de dados em Python.
Lembre-se desta lista no início do curso, onde falei sobre os tipos de dados que
vêm com Python, e então aprendemos sobre classes e como podemos criar nossos próprios tipos de dados, nossos próprios
objetos em Python.
Mas também temos esses tipos de dados especializados que vêm também integrados nesta biblioteca padrão do Python, que são
muito, muito bons neste jogo.
Faça nossos programas realmente poderosos.
Agora eles são especializados porque você não os verá em todos os lugares, mas é bom saber que
eles existem.
E vou repassar alguns dos meus favoritos.
O primeiro que vou mostrar a vocês é o módulo de coleção, então o módulo de coleção é de uma coleção ou
coleções e há três coisas que eu realmente gosto aqui.
Então, vou dizer importação.
Vou importar o contador, o dicionário padrão e o dicionário pedido.
Agora, observe como algumas delas são classes porque são letras maiúsculas e algumas delas parecem ser
apenas uma função, e você pode ler sobre o módulo de coleções simplesmente percorrendo aqui novamente e
apenas olhando as coleções.
E você pode ver todos os que temos.
Portanto, nessas coleções, vamos começar com a primeira.
Um contador é extremamente útil, digamos que eu tenha uma lista que contém um, dois, três, quatro, cinco,
seis, sete.
E eu quero contar quantos itens em uma lista se eu imprimir contador.
Você pode ver aqui o que ele faz, mas essencialmente se eu der uma lista e clicar em executar.
Tudo bem, o que aconteceu aqui?
Ele cria um dicionário onde um ganhou, dois venceram, três venceram.
E se adicionarmos mais sete aqui, digamos sete se eu clicar em executar?
Você viu que o sete agora tem que acontecer, então o que ele faz é criar um dicionário que mantém o registro de quantas vezes um item
ocorreu em um iterável, de modo que o sete ocorreu duas vezes.
Portanto, sete tem o valor de dois.
Outra maneira de usar isso é digamos que temos uma frase e digamos na frase, eu quero verificar.
Bem, vamos apenas escrever algo.
Vou dizer blá, blá, blá.
Pensando em Python, se eu fosse fazer um contador aqui e digamos dar uma sentença se eu clicar em executar.
Olha só, vejo qual letra ocorreu mais.
No nosso caso, cada um ocorreu cinco vezes, o espaço ocorreu cinco vezes e então B ocorreu quatro
vezes, e isso é muito, muito legal.
Porque esse tipo de cálculo de um contador de transformar um item como uma lista no que chamamos de mapa hash ou
um dicionário como este para manter a contagem é na verdade uma função muito útil que você vê em toda a
programação.
Na verdade, ajuda muito com problemas de otimização.
Agora, não vamos entrar nisso aí.
Mas eu só queria mostrar a vocês que o contador é algo muito, muito útil.
Se você quiser contar usuários duplicados ou e-mails duplicados, o contador pode ser muito, muito útil.
E quanto ao próximo cara de pau padrão?
Essa é uma palavra muito difícil de dizer.
Certo, digamos que temos um dicionário aqui e este dicionário terá, bem, um dicionário
muito insignificante terá um um e B dois.
Que dicionário simples.
Agora, aqui, posso dizer dicionário.
Ponto.
Ou parênteses, ei, e poderei agarrar o valor, certo?
Se eu clicar, corra.
Ah, e eu não escrevi dicionário, certo, vamos consertar isso.
Isso é melhor.
Vamos comentar isso por enquanto, porque não precisamos disso.
Você verá que recebo o valor um, mas se tentei acessar algo que não existe, tipo,
veja.
Vou pegar um ar com um dicionário padrão.
Na verdade, vou obter um valor padrão se algo não existir.
Então, vamos converter isso em um dicionário padrão.
Assim.
E agora, se eu executar isso, obteremos outro primeiro argumento que pode ser chamado ou não.
Portanto, o que o DECT padrão faz é nos permitir acessar uma chave como essa, mas fornecer a ela um valor padrão.
Em nosso caso, precisamos dar a ele algo como um objeto chamável aqui.
E culpável significa algo como uma função que pode ser chamada se eu executar.
Eu recebo zero.
Por que é que?
Bem, quando eu topar.
Assim sem nada dentro.
Nós temos zero.
Então, uma forma abreviada, porque isso vai ser executado, é dar a ele uma função rápida que não vamos
usar.
Então, vamos apenas fazer uma lamda.
E apenas dê.
Digamos cinco.
Então agora se eu executar isso, vamos fazer o dicionário aqui.
Ron.
OK, vamos tentar pegar.
Algo que não existe, se eu clicar em executar, obtenho cinco, então este é um padrão comum que você vê com o
DECT padrão, nós apenas damos a ele um valor ou um objeto que pode ser chamado.
Em nosso caso, estamos apenas fornecendo esta função, uma função lambda que simplesmente retorna cinco.
Então posso até dizer aqui.
Não existe.
O segundo parâmetro será o que quisermos e se eu clicar em executar.
Eu obtenho não existe, embora eu esteja acessando uma chave que, bem, não existe agora se eu fizer um aqui e
clicar em executar.
Tudo funciona.
Eu ainda tenho um.
E se eu for.
Dei run também, novamente, outro pequeno tipo de dados útil.
O próximo é DECT ordenado, e este é outro interessante, um dicionário de pedidos retém a ordem que
você insere em um dicionário.
Deixe-me te mostrar.
Então, se tivermos, digamos, um dicionário e este dicionário será um dicionário de pedidos.
Então é assim que o criamos agora aqui, se eu fizer D igual a a.
E isso vai ser igual a um e depois D.
B vai ser igual aos dois.
E agora copio isso e faço um segundo dicionário, vamos adicionar aos dois D a.
E eu verifico, ei, imprima D igual a D, lembre-se, isso vai verificar os valores.
Se eu executar isso.
Eu consegui, sim, eles são iguais, mas se eu alterar a ordem de inserção aqui e clicar em executar.
Recebo falso, desculpe, isso não é a mesma coisa porque mantém a ordem se este fosse um dicionário normal,
então digamos que em vez do que temos aqui, vou simplesmente criar um dicionário e vamos
fazer.
Faremos apenas um simples ver aqui que tem, digamos, cem.
E faça o mesmo para este também, d para.
Ele vai para isso.
Se eu executar isso agora.
Eu me torno verdade porque todas as chaves e valores são os mesmos com um dicionário regular, realmente não nos importamos.
Não há ordem e eu mencionei isso antes, escrever um dicionário em Python não tem senso de ordem, embora quando imprimirmos as
chaves, possamos colocar as coisas em ordem conforme nosso dicionário fica cada vez
maior.
Não há garantia de que, quando imprimirmos todas as chaves, as colocaremos em ordem.
No caso de um dicionário de pedidos, entretanto, temos essa garantia.
Agora, existem algumas implicações de desempenho para eles.
No entanto, em geral, pode ser útil em algumas situações.
Tudo bem, mais alguns para passar, mas esse vídeo está ficando longo, então vamos fazer uma pausa e eu
vou ver no próximo vídeo de.