# Lista e Dicionário

## 📋Lista

Uma lista em python é uma estrutura de dados que permite armazenar e organizar uma coleção de elementos. Esses elementos podem ser de diferentes tipos, como números, string (textos), ou até mesmo outras listas. A <mark>ordem dos elementos é preservada</mark>, o que significa que você pode acessar cada item da lista pela sua posição. Voltando ao exemplo de "Harry Potter".

```python
estudantes = ["Harry", "Hermione", "Draco", "Ron"]
print(estudantes)
```

`>['Harry','Hermione','Draco','Ron']`

Para acessar em cada valor da lista, é somente chamar a lista e entre colchete a posição do valor.

```python
primeiro = estudantes[0]
print(primeiro)
```

`> Harry`

Veja que no Python, a contagem começa no zero '0', então se eu escrever `estudantes[2]`quem é o estudantes nessa posição??

```python
print(estudantes[2])
```

`> Draco`

Num post anterior aprendemos sobre o uso do [📌 for](https://hashnode.com/post/clrs5lhx700020ajs50tr46kc) e o `while`, 📚 exemplo:

```python
for estudante in estudantes:
    print(estudante)
#repare na sintaxe, a diferença singular/plural
```

```python
for i in range(len(estudantes)):
    print(i+1, estudantes[i])
```

A função `len()`vai contar quantos valores ou entradas há na lista e vai retornar um número inteiro para função `range()`, dessa forma essa função faz a quantidade fornecida de iterações.

<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Lembrando que para representar uma lista usa-se colchetes <code>[ ]</code> ou <code>list( )</code></div>
</div>

## 📕Dicionário

Em Python é uma estrutura de dados que associa <mark>chaves a valores</mark>. Cada elementos no dicionário é uma combinação de uma chave única e seu valor correspondente. Isso permite que você armazene e recupere informações de maneira eficiente, sem depender da posição dos elementos.

```python
#criando um dicionário de informações de uma pessoa
pessoa = {
    "nome":"João",
    "idade":25,
    "cidade": "Londrina"
}
```

Nesse sentido, podemos armazenar mais informações e fazer um melhor tratamento com os dados. Por exemplo se temos 200 pessoas, e só queremos saber a idade das pessoas. Fica mais simples do que trabalhar com listas.

```python
#acessando um valor do dicionário pela chave
idade_pessoa = pessoa["idade"]
print(idade_pessoa)
```

`>25`

Nas listas, a ordem dos elementos é fundamental, enquanto no dicionários, a ênfase está na associação de chaves a valores, `'chave':'valor'` , permitindo um acesso rápido e eficiente aos dados.

É possível ter vários dicionários dentro de um lista só.

```python
pessoas = [
    {"nome":"João", "idade":25, "casa":None},
    {"nome":"Harry", "idade":20, "casa": "Grifinória"},
    {"nome":"Draco", "idade":21, "casa":"Sonserina"}
]
```

Como dito antes, pode-se agregar a quantidade de informação que desejar dentro dos dicionários.

```python
for pessoa in pessoas:
    print(pessoa["nome"],pessoa["idade"], pessoa["casa"], sep="___")
```

Quer saber o que acontece com esse👆 loop 🔍?? Teste você mesmo no seu computador ou celular, pelo 📍[Google Colab](https://colab.research.google.com/)

<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Lembrando que para representar um dicionário usa-se chaves <code>{ }</code></div>
</div>
