MC-102 — Aula 5 Listas I

Listas - primeira visita

Declaração de uma lista

Declara-se uma lista, colocando entre colchetes uma sequência de dados separados por vírgula:

identificador = [ \text{dado}_1, \text{dado}_2, \ldots, \text{dado}_n]

Exemplo de listas:

Listas – Como usar

Usando uma lista

        >>> notas= [4.5, 8.6, 9, 7.8, 7]
        >>> notas[1]+2
        10.6
        >>> notas[3]=0.4
        >>> notas
        [4.5, 8.6, 9, 0.4, 7]

Listas - índices

Listas - funções e metodos em listas

Listas: operadores (funcionam como o +)

a = [1,2,4]
b = [1,2,3]
a==b
b.append(9)
a==b

x = [1,[2,3],4]
y = [1,[2,3],4]
z = [1,[2,3,7],4]
x==y
x==z
a = [0,4,6,8]

0 in a

1 in a

Exemplo: Produto Interno de dois vetores

    #calculando o produto interno
    def prod_interno(l1,l2):
       resultado = l1[0]*l2[0]+l1[1]*l2[1]+l1[2]*l2[2]
       return resultado

Mas isso só funciona para listas de tamanho 3. E para outros tamanhos?

O comando for

    a = [1, 21, 31]
    for i in a:
       print(i)

A função range

    for i in range(0,13,2):
      print(i)

o uso mais comum do range

     lista = [1, 2, 3, 4, 7.6, 8.7, 9.5, 4]
     for i in range(len(lista)):
         lista[i] = lista[i]*2

Conserando do produto interno/escalar

    def prod_interno(l1, l2):
        resultado = 0.0
        for i in range(len(l1)):
            resultado = resultado + l1[i] * l2[i]
        return resultado

vamos ver no ChatGPT

escreva uma funcao que calcula o produto interno de duas listas
def produto_interno(lista1, lista2):
    # Verifica se as listas têm o mesmo comprimento
    if len(lista1) != len(lista2):
        return "As listas devem ter o mesmo comprimento"
    
    # Inicializa o produto interno com zero
    produto = 0
    
    # Calcula o produto interno
    for i in range(len(lista1)):
        produto += lista1[i] * lista2[i]
    
    return produto

Coisas parecidas com listas: tuplas e strings

mas nao podem ser modificados (pelo append, por outros metodos ou por atribuição)

tuplas

tuplas sao listas imutaveis representadas por (dado0, dado1, dado3)

a,b,c = func(34)

coisas parecidas com listas: range e outras listas implicitas

O range não cria uma lista verdadeira. Ele cria uma lista implicita que é imutavel (e portanto nao pode ser modificada) mas o == e + não funcionam tambem.

O print nao imprime o range como uma lista

a = range(4)

print(a)

a == [0,1,2,3]

len(a)

a[2]

a + [10,20]

outras funcoes criam listas implicitas (map por exemplo)

para converter uma lista implicita para uma lista normal use a função list

b = list(a)

print(b)

b == [0,1,2,3]