Você está na página 1de 31

Aula 8 Estrutura de Dados

Computao I - aula 8 - 2011/1 2


Estrutura de Dados
Utilizadas para manter e organizar informao (dados)
Tipos de Estrutura de Dados
- Sequncias
- String
- Listas
- Tuplas
- Dicionrios
Computao I - aula 8 - 2011/1 3
Sequncias
Srie de !alores cont"guos que frequentemente esto relacionados#
Exemplos Exemplos

Strings

Lista

$uno range
%%% range(&) %%% range('()'(*)
+'()(*(,(-. +'(*(-(/(0.
Computao I - aula 8 - 2011/1 4
Sequncias - Strings
Exemplo Exemplo
Nome da sequncia (c)
Nmero da posi!o do
elemento dentro da sequncia c
%%% c 1 2ola !oces 334
%%% c+-.
2!4
%%% c+5. 11 c+--.
$alse
2o4
2l4
2a4
2 2
2!4
2o4
2c4
2e4
2s4
2 2
234
234
Computao I - aula 8 - 2011/1 5
Sequncias - "istas
Exemplo Exemplo
Nome da sequncia (c)
Nmero da posi!o do
elemento dentro da sequncia c
%%% c 1 +--&( /( '( 5*( )&-,(
-06( '(/*( -,( )( /-&,( 50.
%%% c+,.
5*
%%% c+6.11c+-,.
True
--&
/
'
5*
)&-,
-06
'
/*
-,
)
/-&,
50
Computao I - aula 8 - 2011/1 6
"istas
So formadas por sequncia de !alores( no necessariamente do no necessariamente do
mesmo tipo mesmo tipo#
"ista #a$ia% "ista #a$ia% representada por + .
&omo criar uma lista 'a$ia% &omo criar uma lista 'a$ia% lista 1 + .
Aten!o% Aten!o% Uma lista vazia no contm nenhum elemento
%%% lista 1 + .
%%% lista+'.
Trace7ac8 (most recent call last)9
$ile :;p<s=ell>)0%:( line )( in ;module%
lista+'.
?nde@Arror9 list inde@ out of range
Computao I - aula 8 - 2011/1 7
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa a seguinte lista e a imprima9
' --&
) 2ola4
* +'.
, 2B4
- +)(*.
& + .
/ '
5 2/*4
0 -,#'
6 2)4
)' /-&,L
)) ++*,.(+2alo4..
Computao I - aula 8 - 2011/1 8
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa a seguinte lista e a imprima9
lista 1 +--&( ColaC( +'.( CBC( +)( *.( + .( '( C/*C( -,#'( C)C(
/-&,L( ++*,.( +CaloC...
for i in range()*)9
print lista+i.
lista 1 + .
for i in range()*)9
a1input(:entre o prD@imo elemento9 :)
lista 1 lista E +a.
for i in range()*)9
print lista+i.
' --&
) 2ola4
* +'.
, 2B4
- +)(*.
& + .
/ '
5 2/*4
0 -,#'
6 2)4
)' /-&,L
)) ++*,.(+2alo4..
Computao I - aula 8 - 2011/1 9
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa a seguinte lista e a imprima9
lista 1 +--&( ColaC( +'.( CBC( +)( *.( + .( '( C/*C( -,#'( C)C(
/-&,L( ++*,.( +CaloC...
for i in range()*)9
print lista+i.
lista 1 + .
for i in range()*)9
a1input(:entre o prD@imo elemento9 :)
lista 1 lista E +a.
for i in range()*)9
print lista+i.
' --&
) 2ola4
* +'.
, 2B4
- +)(*.
& + .
/ '
5 2/*4
0 -,#'
6 2)4
)' /-&,L
)) ++*,.(+2alo4..
#ari)'el que permite arma$enar
mais de um 'alor ao mesmo tempo
*niciali$ando a 'ari)'el como
uma lista 'a$ia
Computao I - aula 8 - 2011/1 10
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa a seguinte lista e a imprima9
lista 1 +--&( ColaC( +'.( CBC( +)( *.( + .( '( C/*C( -,#'( C)C(
/-&,L( ++*,.( +CaloC...
for i in range()*)9
print lista+i.
lista 1 + .
for i in range()*)9
a1input(:entre o prD@imo elemento9 :)
lista 1 lista E +a.
for i in range()*)9
print lista+i.
' --&
) 2ola4
* +'.
, 2B4
- +)(*.
& + .
/ '
5 2/*4
0 -,#'
6 2)4
)' /-&,L
)) ++*,.(+2alo4..
+or i in ,-./.0.1.222.//3 +or i in ,-./.0.1.222.//3
Computao I - aula 8 - 2011/1 11
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa a seguinte lista e a imprima9
lista 1 +--&( ColaC( +'.( CBC( +)( *.( + .( '( C/*C( -,#'( C)C(
/-&,L( ++*,.( +CaloC...
for i in range()*)9
print lista+i.
lista 1 + .
for i in range()*)9
a1input(:entre o prD@imo elemento9 :)
lista 1 lista E +a.
for i in range()*)9
print lista+i.
' --&
) 2ola4
* +'.
, 2B4
- +)(*.
& + .
/ '
5 2/*4
0 -,#'
6 2)4
)' /-&,L
)) ++*,.(+2alo4..
A opera!o 4 representa a A opera!o 4 representa a
concatenao concatenao de listas de listas
Computao I - aula 8 - 2011/1 12
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa a seguinte lista e a imprima9
lista 1 +--&( ColaC( +'.( CBC( +)( *.( + .( '( C/*C( -,#'( C)C(
/-&,L( ++*,.( +CaloC...
for i in range()*)9
print lista+i.
lista 1 + .
for i in range()*)9
a1input(:entre o prD@imo elemento9 :)
lista 1 lista E +a.
for i in range()*)9
print lista+i.
' --&
) 2ola4
* +'.
, 2B4
- +)(*.
& + .
/ '
5 2/*4
0 -,#'
6 2)4
)' /-&,L
)) ++*,.(+2alo4..
%%% lista
+--&( ColaC( +'.( CBC( +)( *.( + .( '( C/*C( -,#'( C)C( /-&,L( ++*,.( +CaloC...
,53 4 ,a3 ,53 4 ,a3
6 6
,5. a3 ,5. a3
A lista +unciona como uma A lista +unciona como uma
FILA FILA
Computao I - aula 8 - 2011/1 13
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa a seguinte lista e a imprima9
lista 1 +--&( ColaC( +'.( CBC( +)( *.( + .( '( C/*C( -,#'( C)C(
/-&,L( ++*,.( +CaloC...
for i in range()*)9
print lista+i.
lista 1 + .
for i in range()*)9
a1input(:entre o prD@imo elemento9 :)
lista 1 +a. E lista
for i in range()*)9
print lista+i.
' --&
) 2ola4
* +'.
, 2B4
- +)(*.
& + .
/ '
5 2/*4
0 -,#'
6 2)4
)' /-&,L
)) ++*,.(+2alo4..
%%% lista
+++*,.( +CaloC..( /-&,L( C)C( -,#'( C/*C( '( + .( +)( *.( CBC(+'.( ColaC( --&.
,a3 4 ,2223 ,a3 4 ,2223
6 6
,a. 53 ,a. 53
A lista +unciona como uma A lista +unciona como uma
PILHA PILHA
Computao I - aula 8 - 2011/1 14
%%% +)(*. E +,.
%%% +)(*. E ++,..
%%% ++)(*.. E ++,..
%%% +)(*. F ,
%%% +)(*. F +,.
"istas
%%% +)(*. G +,.

Computao I - aula 8 - 2011/1 15
%%% +)(*. E +,.
+)( *( ,.
%%% +)(*. E ++,..
+)( *( +,..
%%% ++)(*.. E ++,..
++)( *.( +,..
%%% +)(*. F ,
+)( *( )( *( )( *.
%%% +)(*. F +,.
Trace7ac8 (most recent call last)9
$ile :;p<s=ell>,&%:( line )( in ;module%
+)(*.F+,.
T<peArror9 canCt multipl< sequence 7< non-int of t<pe ClistC
"istas
%%% +)(*. G +,.
Trace7ac8 (most recent call last)9
$ile :;p<s=ell>,5%:( line )( in ;module%
+)(*.-+*.
T<peArror9 unsupported operand t<pe(s) for -9 ClistC and ClistC
&omo retirar um &omo retirar um
elemento de uma elemento de uma
lista7 lista7
Aguarde Aguarde
Equi'alente a Equi'alente a
,/.034,/.034,/.03 ,/.034,/.034,/.03
Computao I - aula 8 - 2011/1 16
"istas
Exerc(cio% Exerc(cio% $aa um programa que soma ) aos elementos pares da lista9
' ,
) -
* *
, &
- )
& 05
/ )*
5 ,-
0 /5
6 06
)' 6'
)) -
Computao I - aula 8 - 2011/1 17
"istas
Exerc(cio% Exerc(cio% $aa um programa que soma ) aos elementos pares da lista9
' ,
) 8
* 0
, &
- )
& 05
/ /0
5 18
0 /5
6 06
)' 9-
)) 8
lista 1 +,(-(*(&()(05()*(,-(/5(06(6'(-.
for i in range()*)9
if lista+i. H * 11 ' 9
lista+i. 1 lista+i.E)
print lista
%%% +,( &( ,( &( )( 05( ),( ,&( /5( 06( 6)( &.
Computao I - aula 8 - 2011/1 18
"istas
Exerc(cio% Exerc(cio% $aa um programa que soma ) aos elementos nas posiIes
"mpares da lista9
' ,
) -
* *
, &
- )
& 05
/ )*
5 ,-
0 /5
6 06
)' 6'
)) -
Computao I - aula 8 - 2011/1 19
"istas
Exerc(cio% Exerc(cio% $aa um programa que soma ) aos elementos nas posiIes
"mpares da lista9
- 1
) -
* *
, &
- )
& 05
/ )*
5 ,-
0 /5
6 06
)' 6'
)) -
lista 1 +,(-(*(&()(05()*(,-(/5(06(6'(-.
for i in range()*)9
if (iE)) H * 11 ) 9
lista+i. 1 lista+i.E)
print lista
%%% +-( -( ,( &( *( 05( ),( ,-( /0( 06( 6)( -.
Computao I - aula 8 - 2011/1 20
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa uma lista de inteiros de taman=o
indeterminado# J construo de!e terminar quando for digitado a pala!ra
2fim4# Konsidere que a lista !azia pode ser um dos resultados deste
programa#
Computao I - aula 8 - 2011/1 21
"istas
Exerc(cio% Exerc(cio% $aa um programa que construa uma lista de inteiros de taman=o
indeterminado# J construo de!e terminar quando for digitado a pala!ra
2fim4# Konsidere que a lista !azia pode ser um dos resultados deste
programa#
lista 1 + .
elemento 1 raLMinput(:Antre com o primeiro elemento da lista (digite
CfimC para terminar)9 :)
L=ile elemento 31 :fim:9
lista 1 lista E +int(elemento).
elemento 1 raLMinput(:Antre com o prD@imo elemento da lista
(digite CfimC para terminar)9 :)
print lista
Computao I - aula 8 - 2011/1 22
"istas
Exerc(cio% Exerc(cio% N que faz o seguinte programaO
!) 1 + .
for i in range( )' )9
n! 1 int( raLMinput( :Antre com !alor Hd9 : H ( i E ) ) ) )
!) E1 + n! .
for i in range( len( !) ) )9
print :H5d H)'d Hs: H ( i( !)+ i .( :F: F !)+ i . )
Computao I - aula 8 - 2011/1 23
"istas
Exerc(cio% Exerc(cio% N que faz o seguinte programaO
!) 1 + .
for i in range( )' )9
n! 1 int( raLMinput( :Antre com !alor Hd9 : H ( i E ) ) ) )
!) E1 + n! .
for i in range( len( !) ) )9
print :H5d H)'d Hs: H ( i( !)+ i .( :F: F !)+ i . )
:etorna o taman;o :etorna o taman;o
de uma lista de uma lista
Computao I - aula 8 - 2011/1 24
"istas
Exerc(cio% Exerc(cio% N que faz o seguinte programaO
!) 1 + .
for i in range( )' )9
n! 1 int( raLMinput( :Antre com !alor Hd9 : H ( i E ) ) ) )
!) E1 + n! .
for i in range( len( !) ) )9
print :H5d H)'d Hs: H ( i( !)+ i .( :F: F !)+ i . )
Computao I - aula 8 - 2011/1 25
"istas
Exerc(cio% Exerc(cio% $aa um programa que leia & notas( armazene-as em uma lista(
imprima cada uma delas e calcule a mdia de tais notas( com preciso de
uma casa decimal# Use while while nas estruturas de repetio#
Computao I - aula 8 - 2011/1 26
"istas
Exerc(cio% Exerc(cio% $aa um programa que leia & notas( armazene-as em uma lista(
imprima cada uma delas e calcule a mdia de tais notas( com preciso de
uma casa decimal# Use while while nas estruturas de repetio#
notas 1 +'('('('('.
soma 1 '
i 1 '
L=ile i ; &9
notas+i.1float(input(:Pota Hd9 : H (iE))))
soma 1 soma E notas+i.
i 1 i E )
i1'
L=ile i ; &9
print :Pota Hd 9 H#)f: H (iE)(notas+i.)
i 1 i E )
print :Qdia9 H#)f: H (somaRi)
:eescre'a o programa com +or :eescre'a o programa com +or
notas6,-3<= notas6,-3<=
Computao I - aula 8 - 2011/1 27
"istas
Exerc(cio% Exerc(cio% $aa um programa que leia & notas( armazene-as em uma lista(
e permita que o usurio possa escol=er qual a nota ele quer imprimir# N
programa de!e terminar quando o usurio digitar '# Use while while nas estruturas
de repetio# Po pode usar break break#
Computao I - aula 8 - 2011/1 28
"istas
Exerc(cio% Exerc(cio% $aa um programa que leia & notas( armazene-as em uma lista(
e permita que o usurio possa escol=er qual a nota ele quer imprimir# N
programa de!e terminar quando o usurio digitar '# Use while while nas estruturas
de repetio# Po pode usar break break#
notas 1 +'.F&
i 1 '
L=ile i ; &9
notas+i.1float(input(:Pota Hd9 : H (iE))))
i 1 i E )
escol=a1int(input(2Sual nota !oc quer imprimir (' para sair)9 2))
L=ile escol=a 31 '9
print :Pota Hd 9 H#)f: H (escol=a(notas+escol=a-).)
escol=a1int(input(2Sual nota !oc quer imprimir (' para sair)9 2))
:eescre'a o programa com +or :eescre'a o programa com +or
Computao I - aula 8 - 2011/1 29
"istas
>anipula!o de "istas
Jlm dos operadores E (concatenao) e F (usado para mTltiplas
concatenaIes) podemos manipular listas usando9
- append 9 outra forma de concatenao# Peste caso( a lista tratada
como uma +ila#
- extend 9 permite adicionar os elementos de uma lista a outa
- del 9 remo!er elemento de uma lista
%%% Lista 1 + . %%% Lista %%% Lista#e@tend(+2q4.)
+CaC(*.
%%% Lista#append(2a4) %%% Lista#append(+,(:f:.) %%% Lista
+CaC(*(+,(CfC.( CqC.
%%% Lista %%% Lista %%% Lista#e@tend(*)
+CaC. +CaC(*(+,(CfC..
%%% Lista#append(*)
Trace7ac8 (most recent call last)9
$ile :;p<s=ell>))%:( line )( in ;module%
l#e@tend(*)
T<peArror9 CintC o7Uect is not itera7le
Computao I - aula 8 - 2011/1 30
"istas
>anipula!o de "istas
Jlm dos operadores E (concatenao) e F (usado para mTltiplas
concatenaIes) podemos manipular listas usando9
- append 9 outra forma de concatenao# Peste caso( a lista tratada
como uma +ila#
- extend 9 permite adicionar os elementos de uma lista a outa
- del 9 remo!er elemento de uma lista
%%% Lista %%% del Lista+). +).
+CaC(*(+,(CfC.( CqC. +CaC(+,..
%%% del Lista+).
%%% Lista
+CaC(+,(CfC.( CqC.
%%% del Lista+*.
%%% Lista
+CaC(+,(CfC..
&omo o segundo &omo o segundo
elemento de "ista ? uma elemento de "ista ? uma
lista. posso retirar desta lista. posso retirar desta
seu segundo elemento2 seu segundo elemento2
Computao I - aula 8 - 2011/1 31
Aula 8 Estrutura de Dados