Aula 09 - listas e strings

Jacques Wainer

2020

Listas - o que a gente já sabe

Listas - assuntos novos

Slices

Slices

Slices com passo

in - testa por pertinencia

    >>> x=[40,30,10,40]
    >>> 10 in x
    >>> True
    >>> 20 in x
    >>> False

outros testes

    >>> x=[40,30,10,40]
    >>> y =[103,2]
    >>> x < y
    >>> True
    >>> y=[40,30,100, 1,1, 1,1 1]
    >>> x < y
    >>> True
    >>> y=[9]
    >>> x < y
    >>> False

Listas - remover elementos

Compreensão de listas

Uma forma implicita para criar listas

Compreensão de listas

Mais informação sobre listas

CUIDADO - listas não são copiadas

>>> a=[1,2,3]
>>> b=a
>>> a.append(47)
>>> a
[1, 2, 3, 47]
>>> b
[1, 2, 3, 47]
>>> b.append(99)
>>> b
[1, 2, 3, 47, 99]
>>> a
[1, 2, 3, 47, 99]

CUIDADO - listas não são copiadas

>>> a=[1,2,3]
>>> b=[1,2,3]
>>> a.append(47)
>>> a
[1, 2, 3, 47]
>>> b
[1, 2, 3]

CUIDADO - como copiar uma lista

>>> a=[1,2,3]
>>> b=a[:]
>>> a.append(47)
>>> a
[1, 2, 3, 47]
>>> b
[1, 2, 3]

Objetos mutáveis e imutáveis

Objetos mutáveis e imutáveis

Objetos mutáveis e imutáveis

Objetos mutáveis e imutáveis

>>> a=[]
>>> id(a)
4360514376
>>> a.append(9)
>>> a
[9]
>>> id(a)    ## nao mudou
4360514376
>>> a=a+[5]  ### concatenação normal
>>> id(a)
4360808072   ### mudou 
>>> a
[9, 5]
>>> a+=[88]  ### outra notação somar ao final 
>>> id(a)
4360808072  ### nao mudou
>>> 

Objetos mutáveis e imutáveis

    def soma2(b):
        b.append(2) # mantem id
        return b

    def soma2x(b):
        b= b+[2]   # nao mantem
        return b

    def soma2y(b):
        b += [2]   # mantem
        return b

    a = [ 9,8,7]
    soma2(a)
    a
    a = [ 9,8,7]
    soma2x(a)
    a
    a = [ 9,8,7]
    soma2y(a)
    a

Listas - sort

        >>> a= [67, 23,12,75]
        >>> id(a)
        4442180424
        >>> a.sort()
        >>> a
        [12, 23, 67, 75]
        >>> id(a)
        4442180424   # o mesmo
        >>> a=sorted(a)
        >>> a
        [12, 23, 67, 75]
        >>> id(a)   
        4442469960   # mudou

Strings - o que a gente já sabe

Strings

in

Outros testes

Strings: operações, funções e métodos

Strings: operações, funções e métodos

Mais informação sobre strings

a pagina da documentação do Python sobre strings https://docs.python.org/3/library/stdtypes.html#textseq

Verifique as funções

Processamento de Texto

Processamento de Texto

Processamento de Texto

Achar palavras em um texto.

A resposta é [2, 7, 9]

Processamento de Texto

Ideia do algoritmo:

    >>> subst="abc"                       
    >>> st="dfg abcabc"
    >>> st.find(subst)
    4                             #posição da 1o ocorrência
    >>> st = st[4+1:]
    >>> st
    'bcabc'                      #removeu até a 1o ocorrência
    >>> tamRemovido=4+1  #tamanho da parte removida
    >>> st.find(subst)   #posição da 2o ocorrência
    2
    >>> pos = [4, tamRemovido+2] #posição da 2o ocorrência considerando o que foi removido
    >>> pos
    [4, 7]
    >>> 

Processamento de Texto

Exercícios

Exercício

Exercício