Python - Otra función con listas

 
Vista:
sin imagen de perfil

Otra función con listas

Publicado por C (17 intervenciones) el 04/10/2014 15:14:06
Buenas!
Tengo que hacer un ejercicio con listas y funciones que pide lo siguiente:
Definir una función llamada "intersección" que reciba dos listas sin repetidos y devuelve una sola lista que contenga aquellos elementos que están en ambas listas.

Yo hice esto:

1
2
3
4
5
6
7
def interseccion(lista1,lista2):
    lista3=[]
    for i in lista1:
        for j in lista2:
            if(lista1[i]==lista2[j]):
                lista3.append(lista1[i])
    return(lista3)

Cuando lo corro me dice: "IndexError: list index out of range"
Apreciaría alguna directriz :D
Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Otra función con listas

Publicado por C (17 intervenciones) el 04/10/2014 15:53:15
Ya lo solucioné, muchachos; olvidense.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def cantApariciones(elem,lista):
    cont=0
    for i in lista:
        if(i==elem):
            cont=cont+1
    return(cont)
 
def elementoRepetido(lista):
    for i in lista:
        if(cantApariciones(i,lista)>1):
            return(True)
    return(False)
 
def interseccion(lista1,lista2):
    if(elementoRepetido(lista1)==False and elementoRepetido(lista2)==False):
        lista3=[]
        for i in lista1:
            for j in lista2:
                if(i==j):
                    lista3.append(i)
        return(lista3)
    else:
        return("Al menos una lista tiene elementos repetidos")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Otra función con listas

Publicado por anonymous (84 intervenciones) el 04/10/2014 15:56:27
prueba con lo siguiente:

1
2
3
4
5
lista3 = []
for i in lista1:
    if i in lista2:
        lista3.append(i)
return lista3

EDIT:
No me di cuenta que ya lo habias solucionado. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar