17 de mayo de 2011

Playing with Python: deciding if two words are anagrams

Very little script I made that checks if two strings(or words) are anagrams:


def are_anagrams(string1, string2):
    string1 = list(string1.lower())
    string1.sort()
    string2 = list(string2.lower())
    string2.sort()
    return string1 == string2



If you thought: "Hey, dude, what's an anagram??", take a look here first. Also, this is a very nice online app that finds anagrams for words you provide: http://wordsmith.org/anagram/

2 comentarios:

facundo dijo...

return sorted(string1.lower()) == sorted(string2.lower())

Ventaja: usa menos memoria (y por lo tanto es más rápido)

Desventaja: es un poquito más críptico.

En cualquier caso, no hace falta que conviertas la cadena en lista para ordenarla (y lo que sí es feo es que "string1" apunte a una lista).

Matías Herranz [scoobygalletas] dijo...

Me gustó mucho esa forma de hacerlo.

Gracias, Facundo, y saludos desde Córdoba!

P.D.: Capaz que voy a Baires a ver a Clapton. ¿Hacemos un tenis -o un ping pong-? :)