Modulo 013 – Iterables

 – O que é um iterable?

Até agora, sempre ao tratarmos de listas, tuplas, strings, dicionários nos referimos como estrutura de dados. No entanto, existe um conceito ( que aqui será explicado de forma mais simples) que define a características dessas estruturas.
Os iterables são estruturas que permitem iterações recorrentes com seus dados.
O que são essas iterações? Geralmente essas iterações são códigos que percorrem os dados de forma repetitiva. Usualmente usaremos o FOR ou WHILE.
Esse conceito é importante porque várias funções do python usam isso para explicar como as coisas funcionam.
É importante que ao ler o termo "iterable" você entenda o que estão falando: "é tipo uma lista de coisas que eu posso percorrer e fazer alguma ação com cada uma das coisas dentro dessa lista"

Vamos ver alguns Iterables já conhecidos:

LISTAS

 produtos = ['iphone', 'samsung galaxy', 'tv samsung', 'ps5'] 
           
 for produto in produtos: 
     print(produto) 
____________________
 iphone 
 samsung galaxy 
 tv samsung 
 ps5 

TUPLAS

 produtos = ('iphone''samsung galaxy''tv samsung''ps5'
           
 for produto in produtos: 
     print(produto) 
____________________
 iphone 
 samsung galaxy 
 tv samsung 
 ps5 

DICIONÁRIO

 vendas_produtos = ('iphone':15000'samsung galaxy':12000'tv samsung':10000
           
 for produto in vendas_produtos: 
     #print(produto) 
     print('{}: {} unidades'.format(produto, vendas_produtos[produto])) 
____________________
 iphone: 15000 unidades 
 samsung galaxy: 12000 unidades 
 tv samsung: 10000 unidades 

STRING

 texto = 'joao lira' 
     
 for ch in texto: 
    print(ch) 
___________
 j 
 o 
 a 
 o 
   
 l 
 i 
 r 
 a 

RANGE

 #range com inicio e fim 
 print(range(1, 10)) 
       
 #vamos olhar no for para entender 
 for i in range(2, 10): 
    print(i) 
_____________
 range(1, 10) 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 

– Iterables – Range

Vamos falar agora de outro iterable, o RANGE(). Nós já
usamos ele anteriormente mas ainda não vimos a fundo
como ele funciona e como pode ser utilizado.
O Range será utilizado de 3 formas distintas:

• range(tamanho);

 for i in range(5): 
    print(i) 
_____________
 0 
 1 
 2 
 3 
 4 

5 corresponde ao Tamanho (nº de itens)
Iterações iniciam do ZERO e vão até 4 (n-1). Numero total de itens IGUAL ao valor indicado no parênteses

• range(início, fim);

 for i in range(5,10): 
    print(i) 
_____________
 5 
 6 
 7 
 8 
 9 

(5) Número que o FOR iniciará, (10) Número terminará o FOR (10 não incluso)
Iterações de +1 iniciando em 5 até 9(n-1).

• range(início, fim, passo);

 for i in range(5,20,2): 
    print(i) 
_____________
 5 
 7 
 9 
 11 
 13 
 15 
 17 
 19 

(5) Número que o FOR iniciará, (20) Número terminará o FOR (20 não incluso), (2) Passo: Aumento de 2 em 2
Iterações de +2 iniciando em 5 até 19(n-1).

– Iterables – Set

Um novo iterable que não vimos até agora é o SET.
Eles parecem bastante com listas, mas possuem
algumas particularidades:
• Não possuem uma ordem específica;
• Não aceitam valores repetidos;
• Usam {} como formato, mas não possuem CHAVE

 set_produtos = {'arroz', 'feijao', 'macarrao', 'atum', 'azeite'
       
 print(set_produtos) 
______________________
 {'arroz', 'azeite', 'macarrao', 'atum', 'feijao'} 
        ↖ Ordem diferente da escrita no código

 set_produtos = {'arroz''feijao''macarrao''arroz''atum''azeite'
       
 print(set_produtos) 
______________________
 {'arroz', 'azeite', 'macarrao', 'atum', 'feijao'} 
              ↖ Apenas 1 item ‘arroz’ 

 cpf_clientes = ['762.196.080-97', '263.027.380-67', '827.363.930-40', '925.413.640-91', '870.565.160-33', '892.080.930-50', '462.126.030-81', '393.462.330-10', '393.462.330-10', '393.462.330-10', '988.305.810-11', '596.125.830-05', '596.125.830-05', '990.236.770-48'
                  
 print('São {} CPFs na lista.'.format(len(cpf_clientes)) 
 set_cpf_clientes = set(cpf_clientes) 
 cpf_clientes_unicos = list(set_cpf_clientes) 
 print(cpf_clientes_unicos) 
 print('No entanto, temos {} clientes na loja'.format(len(set_cpf_clientes))) 
______________________
 São 14 CPFs na lista. 
 ['762.196.080-97', '462.126.030-81', '393.462.330-10', '990.236.770-48', '892.080.930-50', '988.305.810-11', '263.027.380-67', '870.565.160-33', '596.125.830-05', '925.413.640-91', '827.363.930-40'] 
 No entanto, temos 11 clientes na loja 
          ↖ Todas as duplicatas foram removidas

Nenhum comentário:

Postar um comentário