Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: bichotg en 21 Febrero 2012, 16:18 pm



Título: Verificar si dos tuplas contienen los mismos valores [python]
Publicado por: bichotg en 21 Febrero 2012, 16:18 pm
Buenas :) !!

Haber como haríais esto vosotros, a mi no me sale, verifico si las tuplas son iguales, pero si los valores están en distinto orden ya no se como hacerlo

Citar
Write a function hasSameContent(t1, t2) that takes in two tuples as arguments and return True if both tuples contain the same items.

Examples

    >>> hasSameContent((1, 2), (1, 2))
    True
    >>> hasSameContent((1, 2), (2, 1))
    True
    >>> hasSameContent((1, 2), (1, 2, 1))
    False
    >>> hasSameContent((1, 2), ())
    False


Saludos


Título: Re: Verificar si dos tuplas contienen los mismos valores [python]
Publicado por: Jirp96 en 21 Febrero 2012, 17:59 pm
Hola!
A mi me quedo así:
Código
  1. def hasSameContent(t1,t2):
  2. if len(t1) != len(t2): #si la cantidad de elementos es diferente
  3. return False
  4. for cont in t1:
  5. if not cont in t2: #si el elemento no se encuentra en la segunda tupla
  6. return False
  7. return True
  8.  

Código
  1. >>> hasSameContent((1, 2), ())
  2. False
  3. >>> hasSameContent((1, 2), (1, 2, 1))
  4. False
  5. >>> hasSameContent((1, 2), (2, 1))
  6. True
  7. >>> hasSameContent((1, 2), (1, 2))
  8. True
  9.  

Saludos!
pd: de donde sacas esos ejercicios? :o


Título: Re: Verificar si dos tuplas contienen los mismos valores [python]
Publicado por: bichotg en 21 Febrero 2012, 23:02 pm
Hola!
A mi me quedo así:
Código
  1. def hasSameContent(t1,t2):
  2. if len(t1) != len(t2): #si la cantidad de elementos es diferente
  3. return False
  4. for cont in t1:
  5. if not cont in t2: #si el elemento no se encuentra en la segunda tupla
  6. return False
  7. return True
  8.  

Código
  1. >>> hasSameContent((1, 2), ())
  2. False
  3. >>> hasSameContent((1, 2), (1, 2, 1))
  4. False
  5. >>> hasSameContent((1, 2), (2, 1))
  6. True
  7. >>> hasSameContent((1, 2), (1, 2))
  8. True
  9.  

Saludos!
pd: de donde sacas esos ejercicios? :o

Buenas!!!

Buenas!!!

Gracias por tu respuesta,, me a servido para pasar del test, jeje porque las comprobaciones las hace sobre los ejemplos pero realmente creo que no esta bien del todo, porque se trata de Verificar si dos tuplas contienen los mismos valores, si enviáramos hasSameContent((1, 2), (1, 3)) nos daría un True y un False no?

los ejercicios son de la pagina http://www.pyschools.com/ si no la conoces mirala es muy buena.

Saludos!!


Título: Re: Verificar si dos tuplas contienen los mismos valores [python]
Publicado por: Novlucker en 22 Febrero 2012, 08:41 am
Si no los haces tu no tienen gracia ... me he pasado un rato resolviendo ejercicios de esa página :xD
Código
  1. def hasSameContent(t1, t2):
  2. if len(t1)!=len(t2):
  3. return False
  4. return all([(x in t2) for x in t1])

Saludos


Título: Re: Verificar si dos tuplas contienen los mismos valores [python]
Publicado por: Novlucker en 23 Febrero 2012, 18:06 pm
Y luego me di cuenta de que podía ser más corta :xD
Código
  1. def hasSameContent(t1, t2):
  2. return all([(x in t2) for x in t1]) if len(t1)==len(t2) else False

Saludos


Título: Re: Verificar si dos tuplas contienen los mismos valores [python]
Publicado por: WaAYa HaCK en 23 Febrero 2012, 18:38 pm
Y luego me di cuenta de que podía ser más corta :xD
Código
  1. def hasSameContent(t1, t2):
  2. return all([(x in t2) for x in t1]) if len(t1)==len(t2) else False


El A if C else B xD, aquel que no sé implementar...