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.

Afirmar para verificar si un elemento está presente en una lista o no

Estoy tratando de encontrar si un elemento en particular (de tipo int/string) existe en mi lista o no. Pero estoy usando ‘assert’ para evaluar mi condición, lo que significa que si la condición del ‘assert’ es Verdadera (el elemento está presente dentro de la lista), es Falsa si el elemento no está en la lista.

Esto es lo que estoy intentando:

def test(x):
  try:
    for i in x:
      assert i==210410
      return True
  except AssertionError as msg:
    print('Error')


x=[210410,'ABC',21228,'YMCA',31334,'KJHG']

El resultado muestra “Error”, incluso si el elemento está en la lista. ¿Puedes ayudarme a resolver este problema, por favor?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hay un par de problemas con el código que has proporcionado. En primer lugar, la declaración return True está dentro del bucle for, lo cual significa que si el primer elemento no cumple la condición de la afirmación, la función terminará de inmediato y devolverá False. En segundo lugar, la condición de la afirmación está comprobando si cada elemento en la lista es igual a 210410, mientras que mencionaste que quieres comprobar si un elemento en particular existe en la lista.

    Para solucionar estos problemas, puedes modificar la función de la siguiente manera:

    def test(x, elemento):
        try:
            assert elemento in x
            return True
        except AssertionError as msg:
            print('Error')
    

    En esta versión actualizada de la función, hemos añadido un segundo parámetro elemento que representa el elemento que queremos comprobar en la lista. La afirmación assert comprueba si elemento está presente en la lista x. Si está presente, la función devuelve True. Si no está presente, la afirmación assert fallará y generará un AssertionError, que capturamos e imprimimos un mensaje de error.

    Para llamar a la función con tu lista y elemento de ejemplo, puedes hacer lo siguiente:

    x = [210410, 'ABC', 21228, 'YMCA', 31334, 'KJHG']
    test(x, 'ABC')
    

    Esto debería devolver True ya que la cadena ‘ABC’ está presente en la lista. Si llamaras a test(x, 'DEF'), imprimiría ‘Error’ ya que el elemento ‘DEF’ no está presente en la lista.

Comments are closed.