‫E nos últimos vídeos, falamos sobre tabelas hash, portanto, nesta lição, discutiremos como a versão genérica
‫das tabelas hash se parece e a versão genérica da tabela hash é um dicionário.
‫Então, vamos ver como usar dicionários neste vídeo.
‫Tão semelhante a uma tabela hash, um dicionário armazenará seu valor e um par de
‫valores-chave como tínhamos com o dicionário, exatamente onde dissemos que o par de valores-chave para auto seria carro.
‫OK, então a chave seria auto, que é a palavra alemã para carro, e carro será o valor
‫que está dentro deste dicionário.
‫OK, então este é um dicionário do mundo real e um dicionário alemão-inglês, por exemplo.
‫Mas agora vamos usar o dicionário de programação.
‫Dicionários C sustenidos que têm um par de valores-chave como o que temos aqui, onde armazenamos o valor atribuído a uma
‫chave específica.
‫OK, então vamos definir um dicionário.
‫Portanto, a partir da documentação da Microsoft, o dicionário é definido como ok, então ele será semelhante
‫a este valor teki te de dicionário.
‫Então, o que isso significa basicamente é que precisamos especificar os tipos de nossas chaves e valores na declaração
‫de forma semelhante a como fizemos, por exemplo, para uma lista.
‫OK, então uma lista também precisava ter um tipo específico.
‫Uma lista pode ser do tipo inteiro, pode ser do tipo string, pode ser do tipo objeto e assim por diante.
‫Mas precisávamos definir de que tipo essa lista deveria ser.
‫O mesmo vale para o dicionário, mas não são.
‫Temos que defini-lo para a chave e também para o valor.
‫OK, então é basicamente isso que este T. S. UMA. valor significa.
‫OK, isso significa que temos muita flexibilidade, mas não a flexibilidade que tínhamos na tabela de
‫hash.
‫Basicamente, podemos prosseguir e criar um dicionário como este aqui, onde dizemos que a chave será do tipo
‫vala e o valor será do tipo string.
‫E, claro, para usar dicionários, precisamos nos certificar de que temos um sistema que faz coleções
‫tão genéricas.
‫Portanto, você vê que um dicionário é uma coleção genérica.
‫Vimos em outro vídeo que há uma diferença entre coleções genéricas e não
‫genéricas ou tabelas de hash em coleções não genéricas e dicionários são coleções genéricas.
‫Portanto, eles têm todas as vantagens e desvantagens.
‫Portanto, agora este dicionário terá um inteiro, um número, por assim dizer, e um valor que será uma string, então o
‫número será a chave e a string será o valor.
‫Agora, aqui estamos criando este dicionário chamado Meu Dicionário, e o estamos inicializando
‫com um dicionário vazio imediatamente neste ponto, podemos então prosseguir e usar este dicionário para que possamos adicionar
‫valores a esse dicionário.
‫Podemos, por exemplo, também já definir os valores do dicionário imediatamente.
‫Então, na mesma linha, basicamente aqui.
‫Assim, poderíamos, por exemplo, apenas dizer, OK, será assim que o dicionário ficará.
‫Onde temos um animador e um barbante.
‫Então temos aquele sendo este artista aqui, a chave e aquele sendo o texto para isso seria o
‫valor.
‫Portanto, agora temos o tipo de artista e a palavra falada em inglês para o que quer que seja, inteiros.
‫OK, então um seria um, dois seriam dois, três seriam três e assim por diante.
‫Agora, é claro, os dicionários não se limitam a inteiros e as strings podem usar valores muito mais complexos.
‫Estamos armazenando.
‫OK, então, por exemplo, consideremos sem disco aqui.
‫Portanto, estou criando uma nova classe chamada Employee.
‫Vou colocá-lo no mesmo arquivo.
‫Mas é claro, você pode criar um arquivo separado.
‫Portanto, temos algumas propriedades, como função, nome, idade e taxa para cada funcionário.
‫OK, e então temos o salário, que é um float, e retorna a taxa de oito vezes, cinco vezes
‫quatro vezes doze.
‫OK, seja qual for a taxa de vezes, esse valor será o que iremos armazenar ou obter como
‫salário.
‫Portanto, se recuperarmos o salário, ele calculará diretamente o salário para nós.
‫São oito horas, cinco dias, quatro semanas, 12 meses.
‫É assim que vai calcular basicamente o salário anual, por assim dizer.
‫Claro, vezes a taxa.
‫Agora, digamos que temos um banco de dados de funcionários como o nosso.
‫Presumo que este será nosso banco de dados de funcionários e, a propósito, acabei de
‫perceber que perdi a taxa aqui ao criar o construtor.
‫Portanto, este construtor também vai usar a taxa agora e atribuir a taxa aqui e agora podemos usar nossos dados
‫do banco de dados.
‫OK, então temos o banco de dados onde obtemos o título, obtemos o nome, obtemos o que
‫é isso, a velhinha, 95 anos.
‫E então temos sua taxa.
‫Então ela tem uma taxa de duzentos.
‫Então temos o gerente, Joe, que tem 35 anos, tem uma taxa de 25 e assim por diante.
‫Agora, o que vou fazer é não usar este dicionário aqui, vou criar um
‫dicionário separado que chamarei de diretório de funcionários, e esse diretório de funcionários terá basicamente um
‫valor-chave par de string empregado.
‫Portanto, ele armazenará em uma string específica o objeto funcionário inteiro.
‫E vou chamar esse diretório de funcionários.
‫OK, e a string que usaremos será a função do funcionário.
‫OK, então aqui vou usar isso para cada loop que agora passará por todos os funcionários em meu banco
‫de dados de funcionários.
‫Portanto, este é o meu banco de dados de funcionários.
‫Estou fingindo, por assim dizer.
‫Direito.
‫Ele vai percorrer cada item desse banco de dados de funcionários e
‫vai adicionar ao meu diretório de funcionários na posição ou na chave da função, o próprio funcionário.
‫OK, então aqui estamos, assumindo que para cada função temos apenas um funcionário.
‫Caso contrário, isso iria bagunçar todo o sistema.
‫Portanto, este é um exemplo de como podemos criar um dicionário com dados de um banco de dados falso,
‫que basicamente será apenas uma matriz de funcionários que definimos aqui.
‫E agora se quisermos obter os dados de um dicionário?
‫Portanto, queremos buscar dados de um dicionário e digamos que queremos buscar dados do funcionário que é
‫o CEO.
‫Então essa é a posição do CEO.
‫Então podemos ir funcionário.
‫Vou ligar para esse funcionário e o pegamos no diretório de funcionários.
‫E aqui nós apenas dizemos, OK, eu quero ter o CEO.
‫Então, eu quero conhecer a pessoa e talvez também o objeto inteiro dessa pessoa que tem Zevo como
‫título.
‫Basicamente, apenas dizendo que onde a chave vai ser o CEO para meus funcionários do dicionário leve o diretório lá.
‫Quero saber quem é o CEO e quero armazenar todo o funcionário em um objeto para que possa ir em
‫frente e exibir os detalhes desse funcionário usando um console.
‫Direito.
‫Declaração de linha assim.
‫Então aqui eu digo que o nome do funcionário será, que será o nome do funcionário, a função e o salário.
‫Portanto, isso será exibido.
‫OK, então basicamente obteremos o salário com base na taxa e este cálculo
‫aqui, obteremos a função diretamente e obteremos o nome diretamente do próprio objeto funcionário.
‫Portanto, a partir deste objeto de funcionário.
‫OK, agora vamos correr bem rápido e ver o que Quinn vai ganhar, considerando que ela trabalha em
‫tempo integral e podemos ver que ela tem um salário de RIANNE 84.000.
‫O nome dela é Quinn, seu papel como CEO.
‫Portanto, a execução desse código funciona, como você pode ver, não há problema aqui, mas o problema pode ser que
‫estamos inserindo um valor errado.
‫Digamos que, em vez de CEO, estou procurando o CTO, então, o diretor técnico.
‫Então, o diretor técnico.
‫E se eu executar isso, você verá o meu aplicativo travar.
‫Portanto, diz que o CTO não estava presente no dicionário.
‫Portanto, a chave nunca foi dada.
‫Então, para consertar isso, podemos basicamente verificar se a chave existe.
‫Então, aqui, o que seria uma maneira muito boa de verificar isso seria criar uma chave chamada SEO ou String chamada
‫Key, que tem o valor de SEO.
‫E então verificamos o diretório de funcionários.
‫Para aquela chave específica, então aqui você vê contém a chave é uma das opções favoritas ou favoritas aqui, então
‫contém a chave, e então aqui podemos passar a string que queremos verificar como a chave.
‫Então, ele contém a chave chamada CEO?
‫Em caso afirmativo, execute este código aqui?
‫E se não funcionar, não o execute.
‫Ou você poderia, é claro, simplesmente dizer que essa chave não existe.
‫Agora você pode criar um pequeno aplicativo que permitirá que você insira uma chave e então seu aplicativo
‫irá verificar, OK, isso existe ou não?
‫E por falar nisso, aqui, isso deve ser substituído por chave.
‫Não vai ser mais codificado.
‫Bem, é codificado e em outro ponto, por assim dizer.
‫Mas isso pode ser algo que obtemos da entrada do usuário ou o usuário construído a partir de uma IU ou algo
‫parecido.
‫E então o aplicativo iria recuperar os dados e exibi-los em vez de apenas um novo aplicativo de console em
‫uma IU real.
‫E mais tarde você verá como usar seus olhos ou como construir seus olhos usando o.
‫Portanto, essa é uma maneira de contornar o problema, outra forma seria usar algo chamado try get
‫value.
‫OK, deixe-me adicionar rapidamente um pouco de código e examiná-lo.
‫Então, digamos que temos esse funcionário MTA, que eu chamo de resultado, e ele está vazio porque eu
‫disse isso de vez em quando estou verificando o diretório de funcionários se ele tem o valor chamado inturn e estou usando este
‫método try get value.
‫Então, vamos tentar obter o método de valor que retornará um
‫booleano, o que é ótimo porque é isso que uma instrução if gosta de ter na condição e imprimirá o resultado e colocará o valor no resultado.
‫Portanto, este resultado estará realmente incompleto.
‫Então tente get value, vai tentar pegar o valor que passamos aqui e se funcionar, o volume vai voltar.
‫Verdade.
‫Então esta instrução será executada e ao mesmo tempo vai conseguir colocar o resultado nesta variável.
‫Portanto, o resultado será colocado nesta variável de resultado.
‫Portanto, o valor que recuperamos de nosso diretório de funcionários será armazenado no resultado.
‫OK, então é isso que esta declaração aqui diz.
‫E se funcionou, de fato e por sua vez existe, então este código será executado e caso contrário este código
‫será executado.
‫Portanto, esta chave não existe.
‫Essa seria apenas outra maneira de contornar o mesmo problema.
‫Portanto, tentar obter valor também funciona bem.
‫Muito bem, você recuperou o funcionário chamado Ernest Turn 22 e ele recebe um salário de mil euros por ano ou
‫qualquer tipo de dinheiro que você queira falar aqui.
‫OK, agora vamos cavar um pouco mais fundo, porque também podemos obter um elemento com o elemento no método,
‫portanto, um elemento do nosso dicionário.
‫Então, como aprendemos ou como você aprendeu, um dicionário vai usar estrutura aqui.
‫Portanto, um dicionário é uma coleção de pares de valores-chave, que é uma estrutura definida como um
‫par de valores-chave que se parecerá com isto aqui.
‫Então, vamos dar uma olhada neste ano.
‫Portanto, temos a chave e o valor.
‫Portanto, este é o par de valores-chave.
‫Então é isso que um dicionário contém.
‫Então, vamos dar uma olhada nisso como um loop aqui e por mim, você pode colocá-lo bem aqui.
‫Então, este loop for, o que ele fará é usar este método add de elemento.
‫Porém, para usá-lo, precisaremos implementar um link.
‫Por enquanto, basta aceitar que o link é uma ferramenta poderosa que nos permite trabalhar com coleções de uma forma muito
‫eficiente.
‫E teremos um capítulo extra mais tarde, onde examinaremos os links especificamente.
‫Mas, por agora, vamos apenas aceitar isso.
‫OK, assim que chegar aos capítulos posteriores, você aprenderá mais sobre isso e então isso fará mais
‫sentido.
‫OK, então no nosso caso.
‫E este exemplo particular em que temos nosso par de valores-chave com a chave e o valor em que Teekay.
‫É o tipo das nossas chaves do nosso dicionário e o mesmo vale para o valor do chá, que é o valor
‫do nosso dicionário agora no nosso caso, é string e employee se olharmos para ele.
‫OK, então para o nosso dicionário que criamos aqui, é string e funcionário.
‫Mas, internamente, por trás dessa chave de string, há também um valor inteiro, ou seja, um número, por assim dizer.
‫OK, então digamos que na posição zero seja o CEO um, o gerente na
‫posição H. R. pessoa, na posição três, o secretário e assim por diante.
‫OK, embora todos estejam na posição, na chave de sua função.
‫Mas, internamente, eles também serão adicionados a um número.
‫Portanto, a chave também será um número internamente.
‫Então é exatamente isso que podemos usar para este elemento neste elemento.
‫E se você passar o mouse, ele retornará o elemento no índice especificado em uma sequência.
‫OK, então um dicionário é uma sequência, então ele retornará basicamente nossa posição zero hemorrágica, nossa posição de funcionário
‫um, a posição dois e assim por diante.
‫No entanto, isso retornará um par de valores-chave.
‫OK, e o par de valores-chave que criaremos aqui será uma string de tipo e funcionário.
‫Portanto, agora podemos exibir a chave e obter o valor de nosso funcionário em nosso par de valores-chave na posição de
‫valor.
‫Porque o obtemos do nosso elemento no trabalho.
‫Isso é um pouco mais complicado, mas basicamente é apenas outra maneira de acessar um item dentro
‫do seu dicionário, não usando a chave como uma string, mas a chave como um inteiro.
‫E isso vale para todos os diferentes tipos de chaves.
‫Portanto, não importa o tipo que você usou para a chave, sempre há um número atribuído a ela também.
‫Portanto, mesmo que fosse do tipo objeto ou do tipo double ou qualquer outro, sempre há um
‫inteiro atribuído a ele, o que nos permite apenas este elemento em I.
‫OK, então vamos examinar isso e você verá que basicamente nos permitirá exibir todos os funcionários.
‫Por isso, passa por todos os funcionários de nossa lista.
‫Então eu acredito que vai até aqui.
‫OK, isso mostra-nos todos os funcionários que temos no seu.
‫E até começa um pouco mais acima.
‫Portanto, esta é basicamente a lista que estamos recebendo deste grupo.
‫OK, então você pode usar um Falu para percorrer uma lista inteira de dicionários.
‫Você pode, é claro, usar A para cada loop também, mas também pode acessar itens usando o elemento
‫que I e, em seguida, pode armazená-lo e, em seguida, o objeto funcionário porque o valor vai ser na verdade do tipo
‫funcionário porque é isso que nós defina aqui.
‫Agora, se você olhar a chave, vamos executá-la novamente.
‫Você pode ver aqui, CEO chave, gerente chave, RHR chave, secretária chave, agora, nós também poderíamos imprimir o olho se você
‫quisesse.
‫Então aqui.
‫Tipo, tão grande.
‫Bem, na verdade, vamos apenas imprimir aqui.
‫Eu é, e então eu serei a segunda entrada assim e então imprimiremos I.
‫OK, então você pode ver diretamente qual valor inteiro é atribuído a uma posição específica, então o CEO está na posição zero, o
‫gerente está na posição um, o H. R. pessoa é uma posição para e assim por diante.
‫OK, tudo bem.
‫Então é isso para este vídeo.
‫Acho que é um vídeo longo o suficiente para examinar dicionários, pelo menos neste ponto.
‫Portanto, no próximo vídeo, vamos ver como podemos atualizar um dicionário existente para que possamos atualizar o valor de
‫um dicionário e, em seguida, também ver como podemos remover dados de um dicionário.
‫OK, até a próxima.