Você está na página 1de 6

Tuplas em Python

INF 1026 – Computação Aplicada


Exercícios comentados

Pontifícia Universidade Católica


Departamento de Informática
Exercício
Defina uma função que receba 2 listas de mesmo tamanho e combina-as em
uma lista de tuplas, conforme os exemplos abaixo:
combina( [1,2], [10,20] ) retorna [(1,10),(2,20)]
combina ( [1,2,3], ['a','b','c']) retorna [(1,'a'),(2,'b'),(3,'c')]

Cria a sequência resultante vazia


Acessa o i-ésimo elemento da lista1 e o i-ésimo elemento da lista2
i de o até n-1
Inclui par na sequência resultante
retorna a sequência resultante

2
Solução
'''
Defina uma função que receba 2 listas de mesmo tamanho e combina-as em uma lista de tuplas, conforme os exemplos abaixo:
combina( [1,2] [10,20] ) retorna [(1,10),(2,20)]
combina [1,2,3] ['a','b','c'] [(1,'a'),(2,'b'),(3,'c')]
'''
def combina(l1,l2):
lRes=list()
0,1

n=len(l1)
for i in range(n):
par=(l1[i],l2[i])
lRes.append(par)
return lRes
print( combina( [1,2], [10,20]), ‘Esperado: [(1,10),(2,20)]')
print( combina ([1,2,3], ['a','b','c']) ," Esperado: [(1,'a'),(2,'b'),(3,'c')]")
print( combina ([[1,2,3], ['a','b','c']],[10,20]), " Esperado: [ ([1,2,3],10) , ( ['a','b','c'],20) ]")
3
Simulação da Execução1/2

4
Simulação da Execução2/2

5
Qual a diferença???
Qual a diferença, quando há um for interno para l2?
def combina(l1,l2):
lRes=list()
n=len(l1) [ 1 , 2 ]
for i in range(n):
for j in range(n):
[10,20] [10,20]
par=(l1[i],l2[j])
lRes.append(par)
return lRes
print( combina( [1,2], [10,20]), 'Esperado: [(1,10),(1,20),(2,10),(2,20)]')
6

Você também pode gostar