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?
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:
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ónassert
comprueba sielemento
está presente en la listax
. Si está presente, la función devuelve True. Si no está presente, la afirmaciónassert
fallará y generará unAssertionError
, 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:
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.