Anda di halaman 1dari 6

GUA

DE EJERCICIOS 5 LISTAS Y TUPLAS



Listas

I.
Considere que el las variables x e y tienen los siguientes valores:
x = [2, 3, 2]
y = [3, 5]
Escriba el valor de x despus de las siguientes sentencias (despus de cada
sentencia x e y vuelven a sus valores originales [solamente para los propsitos del
ejercicio, Python no funciona as])

1. x = x[1] ________ 12. x.insert(2,0) ________
2. x = x+y ________ 13. x.remove(2) ________
3. x = y*2 ________ 14. del x[2] ________
4. x.append(0) ________ 15. x = sum(x) ________
5. x = len(x) ________ 16. x = 2 in x ________
6. x = len(x+y) ________ 17. x = y.reverse() ________
7. x=len(x.append(y)) ________ 18. y.reverse() #y-> ________
8. x = x[-1:-3] ________ 19. x.sort() ________
9. x = range(3) ________ 20. x = x.index(2) ________
10. x = x > y ________ 21. x = y > [3,4] ________
11. x = range(5,1,-1) 22. x = 5 in x ________


II. Escriba el valor lo que se imprime despus de cada conjunto
de sentencias (realice un pequeo ruteo si tiene problemas)

1. a = []
a.append(3)
print a


2. x = [[1,3],abc,[-1,2]]
print x[0],x[0][1]
print x[1],x[1][2]
print x[0][0] + x[2][0]
print len(x[0])

3. x = list(hola)

for l in x:
print l
l = 0
print x


4. x = [1,3]
y = x
z = list(x)
z.append(5)
y.append(6)
print x,y,z

5. x = [3,8,4,-1]
x.sort()
print x
x.reverse()
print x

5. def listor(x):
del x[0]
z = [3,6]
listor(z)
print z

6. def listor_v2(x):
for e in x:
e = -1
z = [3,6]
listor_v2(z)
print z

7. def listor_v2final(x):
#y si esta lnea fuera x = list(x)?
for i in range(len(x)-1, -1, -1):
del x[i]
z = [3,6]
listor_v2final(z)
print z


III. Indique por qu las siguientes sentencias provocan errores
teniendo en cuenta que x = [[2,3],5,3] (considrelas
independientemente)

x.index(4) _______________________________
_______________________________
x.index(2)
_______________________________
X[0,0]+x[0,1]
_______________________________
sum(x)
_______________________________
x.del(3)
_______________________________
remove x[0]
_______________________________
x[range(1,3)]

for i in range(len(x)):
del x[i]





IV. Escriba funciones que realicen las siguientes tareas:

1. Recibe una lista de nmeros como parmetro. Retorna el mximo


elemento (sin utilizar la funcin max).

2. Recibe una lista de nmeros como parmetro. Retorna la suma


de todos ellos (sin utilizar la funcin sum).

3. Recibe una lista de nmeros como parmetros. Retorna el


mximo, pero solo considerando a los nmeros pares menores
que 100 (la lista puede tener cualquier tipo de nmero).

4. Recibe una lista de nombres y un nombre (2 parmetros


diferentes). Retorna el nmero de veces que se encuentra ese
nombre en la lista (sin utilizar la funcin count).

5. Recibe una lista de listas de palabras ([[hola,


tu],[el, mundo, es, mio]] por ejemplo). Retorna la
concatenacin de todas las palabras con un espacio en blanco
entre ellas (hola tu el mundo es mio).

6. Igual que el anterior, pero solo concatena el 2do elemento de


cada lista (tu mundo).

7. Recibe una lista de nombres. Retorna la lista ordenada


alfabticamente.




Tuplas y Listas de Tuplas

I. Considere que el las variables x e y tienen los siguientes
valores:
x = (Juan, 30)
y = [(Pedro, 18), (Diego,19)]
Escriba el valor de x (a no ser que se indique lo contrario)
despus de las siguientes sentencias (despus de cada sentencia x
e y vuelven a sus valores originales [solamente para los
propsitos del ejercicio; Python no funciona as])

1. x = x[0] ________ 10. x = x > y[0] ________
2. x = y[0][0] ________ 11. x = y[0] > y[1] ________
3. x = x*2 ________ 12. x = y[0] == x ________
4. x = x+x ________ 13. x = 30 in x ________
5. x = len(x) ________ 14. x = 18 in y ________
6. x = len(y[0]) ________ 15. y.sort() # -> y ________
7. x = x.index(30) ________ 16. x = list(x) ________
8. x = y[0][0:] ________ 17. x = tuple(y) ________
9. x = x.count(30) ________

II. Escriba el valor lo que se imprime despus de cada conjunto
de sentencias (realice un pequeo ruteo si tiene problemas)

1. p = (1,2)

x = []
x.append(P)
print x

2. x = [(huaso,5),(heno,7),(jaiva,3)]
palabra, num = x[1]
print palabra, num
x.sort()
print x, palabra, num

3. x = [(Jose,(20,2,1896)), (Alf,(11,11,1864))]
for n,f in x:
d,m,a = f
print n,f,d,m,a






4. x = [(huaso,5),(heno,7),(jaiva,3)]
y = []
for p,n in x:
y.append((n,p))
print y
y.sort()
print y
y2 = []
for n,p in y:
y2.append((p,n))
print y2

III. Indique por qu las siguientes sentencias provocan errores y
cmo se podra lograr el resultado deseado. Tenga en cuenta
que x = [(2,3),(5,3)] e y = (4,1) (considere cada sentencia
independientemente)

y(0) _______________________________
_______________________________
y[1] = 5
_______________________________
y.append(2)
_______________________________
x[0][1] = 5
_______________________________

IV. Escriba funciones que realicen las siguientes tareas:

1. Recibe una lista de tuplas de tipo (nombre, numero) como


parmetro. Retorna la tupla con el mnimo nmero. Ejemplo:
>>>funcion([(n1,33),(n2,41),(n3,32)])
(n3,32)

2. Recibe una lista de tuplas de tipo (rut,valor) y un rut.


Retorna el valor asociado a ese rut. Ejemplo:
>>>funcion([(111-1,3),(222-2,1)], 222-2)
1

3. Recibe una lista de tuplas de tipo (color,valor) y un


color. Retorna la suma de todos los valores asociados al
color recibido como 2do parmetro. Ejemplo:
>>>funcion([(azul,2),(verde,1),(azul,3)], azul)
5

4. Recibe una lista de tuplas de tipo (nombre, (dia,mes,ao))


y un ao. Retorna una lista con todas los nombres que tengan
el ao del parmetro. Ejemplo:
>>>funcion([(Jose,(20,2,1896)),
(Alf,(11,11,1864))
(Ruth,(3,12,1896]), 1896)
[Jose, Ruth]

5. Recibe una lista de tuplas de tipo (id, valor) y un id.


Retorna una lista de tuplas igual a la recibida, pero con el
valor asociado a id igualado a 0. Ejemplo:
>>>funcion([(0,5),(1,12),(9,2),(4,22)], 9)
[(0,5),(1,12),(9,0),(4,22)]

V. Indique por qu las siguientes funciones no logran su


cometido (o falla en el proceso) e indique un arreglo:

#esta funcin borra los elementos, cuyos valores sean n, de la


#lista de nmeros que recibe
def f(lista, n):
for elem in lista:
if elem == n:
del elem

def f2(lista, n): #2do intento fallido
for i in range(len(lista)):
if lista[i] == n:
del lista[i]

#esta funcin modifica el valor de la tupla (nombre,deuda),
#igualando la deuda a 0 de la persona llamada segn el 2do
#parmetro de la funcin, dentro de una lista de tuplas (similar a
#la del ejercicio IV.1)
def f(lista, nombre):
for nom, deuda in lista:
if nombre == nom:
deuda = 0

def f2(lista, nombre): #2do intento
for t in lista: #
if nombre == nom:
t[1] = 0

def f3(lista, nombre):
for it in range(len(lista)): #3er intento
if nombre == nom:
lista[it][1] = 0

Anda mungkin juga menyukai