es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python: ¿Cómo cambiar automáticamente una cadena a un conjunto en el método .intersection() de Set?

Soy nuevo en Python (y tengo conocimientos básicos de Java) y lo estoy aprendiendo por mi cuenta en este momento utilizando el libro “Head First Python, 2da Edición”.

En uno de los ejemplos del libro, se muestra cómo se utiliza el método .intersection() de los conjuntos. Lo hace de la siguiente manera:

if name == 'main':
    def buscar_vocales(palabra: str) -> set:
        """Devuelve las vocales encontradas en la palabra suministrada."""
        vocales = set('aeiou')
        return vocales.intersection(set(palabra))

print(buscar_vocales('hitch-hiker'))
print(buscar_vocales('sky'))

Sin embargo, cuando lo intenté por mi cuenta, olvidé accidentalmente la parte ‘set’ en el código anterior (arriba de las declaraciones print), por lo que se convirtió en:

if name == 'main':
    def buscar_vocales(palabra: str) -> set:
        """Devuelve las vocales encontradas en la palabra suministrada."""
        vocales = set('aeiou')
        return vocales.intersection(palabra)

print(buscar_vocales('hitch-hiker'))
print(buscar_vocales('sky'))

Sin embargo, el código se ejecutó sin problemas y devolvió la salida correcta. Esto me parece un poco extraño, ya que estaría comparando un conjunto con una cadena, y no un conjunto con otro conjunto. Mi pregunta, por lo tanto, es: ¿Python convierte automáticamente una cadena en un conjunto al realizar el método intersection() de un conjunto?

Gracias de antemano,
David

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hola David,

    Sí, Python automáticamente convierte la cadena en un conjunto al realizar el método intersection() de Set. Esto se debe a que el método intersection() requiere dos conjuntos como entrada, pero como pasaste una cadena, Python la convierte automáticamente en un conjunto detrás de escenas.

    De hecho, este comportamiento no se limita solo al método intersection(), sino que es un comportamiento general de muchas de las funciones y métodos incorporados de Python. Por ejemplo, también puedes pasar una lista o una tupla a la función set() y Python la convertirá automáticamente en un conjunto.

    Espero que esto aclare tu confusión. ¡No dudes en preguntar si tienes más preguntas!

Comments are closed.