# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: py_fundamentos
#     language: python
#     name: py_fundamentos
# ---

# # Listas

# Criação da Lista - Com um elemento, notar as aspas
lista_mercado = ['ovos, farinha, leite, maças']

# Impressão da Lista
print(lista_mercado)

# Outra lista - Agora com vários elementos
lista_mercado2 = ['ovos','farinha','leite','maça']

# Impressão da Lista 2
print(lista_mercado2)

# Impressão do primeiro elemento de cada lista, notar o índice e a saída
lista_mercado[0]

lista_mercado2[0]

# Outra lista - Listas não tem restrição de tipos de dados
lista3 = [12,100,'universidade']

# Impressão da lista 3
print(lista3)

# Atribuição de valores da lista em uma variável pelo índice
item1 = lista3[0]
item2 = lista3[1]
item3 = lista3[2]

# Impressão das variáveis
print(item1,item2,item3)

# ## Atualização de Valores em Listas
# Ao contrário de strings, valores em listas são mutáveis.

# Atualizar item da lista
lista_mercado2[2] = 'chocolate'

print(lista_mercado2)

# ## Remoção de um Item na Lista
# Deleta-se itens em listas com o comando **del**

# Remover o item no índice 3
del lista_mercado2[3]

# Checar a remoção do item
print(lista_mercado2)

# ## Listas Aninhadas (Listas de Listas)
# Listas de listas, são matrizes em Python.

# Criação de uma lista de listas
listas = [ [1, 2, 3], [10, 15, 14], [10.1, 8.7, 2.3] ]

# Impressão da lista
print(listas)

# Atribuir um item da lista em uma variável, lembrando que os items desta lista são outras listas
a = listas[0]

print(a)

# Agora podemos extrair um item da lista 'a', que é um valor escalar
b = a[0]

# Impressão da variável
print(b)

# ## Operações com Listas

# Criação de uma lista aninhada
listas = [ [1, 2, 3], [10, 15, 14], [10.1, 8.7, 2.3] ]

# Impressão da lista
print(listas)

# Atribuição da variável a, o primeiro valor da primeira lista
# Usando o símbolo de fatiamento
# Como listas de listas são matrizes, usa-se as cordenadas linhas x colunas
a = listas[0][0]

print(a)

b = listas[1][2]
print(b)

# Retornar o item da lista e ainda somar um valor escalar
c = listas[0][2] + 10
print(c)

d = 10
e = d * listas[2][0]
print(e)

# ## Contatenação de Listas

lista_s1 = [ 34, 32, 56 ]
print(lista_s1)

lista_s2 = [ 21, 90, 51 ]
print(lista_s2)

# Contatenação das listas
lista_full = lista_s1 + lista_s2
print(lista_full)

# ## Operador in

# Criação de uma lista
lista_teste_op = [ 100, 2, -5, 3.4 ]

# +
# Pesquisar um valor nos itens de uma lista
# Checar se o valor 10 existe na lista

print( 10 in lista_teste_op)

# +
# Checar se o valor 100 existe na lista

print(100 in lista_teste_op)
# -

# ## Funções Build-in

# Retornar o tamanho da lista
len(lista_teste_op)

# Retornar o maior valor da lista
max(lista_teste_op)

# Agora retornar o menor valor
min(lista_teste_op)

# Criando uma nova lista
lista_mercado = [ 'ovos', 'farinha', 'leite', 'maças' ]

# Agora adicionaremos outro item na lista
lista_mercado.append('carne')

# Checar se o novo valor entrou na lista
print(lista_mercado)

# +
# Adicionar carne novamente na lista, pois serão duas strings diferentes
lista_mercado.append('carne')

print(lista_mercado)
# -

# Agora contaremos quantas vezes existem um item aparece na lista
lista_mercado.count('carne')

# Criação de uma lista vazia
a = []

# Checar a lista
print(a)

# Checar o tipo do objeto
type(a)

# Adicionar o item 10
a.append(10)

print(a)

# Adicionar o número 50
a.append(50)

print(a)

lista_old = [ 1, 2, 5, 10 ]
lista_new = []

# Copiar os itens de uma lista para outra
for i in lista_old:
    lista_new.append(i)

# Checar os valores copiados
print(lista_new)

# +
# Extendendo uma lista
cidades = [ 'Recife', 'Manaus', 'Salvador' ]

cidades.extend([ 'Fortaleza', 'Palmas' ])

print(cidades)

# -

# Pegar o índice de um item
cidades.index('Salvador')

# Inserir um novo item na lista, em um determinado índice
cidades.insert(2, 'Porto Alegre')
print(cidades)

# Remover um item da lista pelo nome do item
cidades.remove('Recife')
print(cidades)

# Reverter a ordem dos itens
cidades.reverse()
print(cidades)

# +
# Ordenar uma lista
nums = [ 4, 2, 6, 7, 5 ]

print(nums)

nums.sort()

print(nums)

StarcoderdataJupyterScriptsDedupFiltered