Es una tarea común verificar si uno o más elementos residen dentro de una lista. En lugar de idear una función elaborada, puede utilizar los siguientes enfoques concisos.
El operador u Python evalúa sus argumentos secuencialmente y devuelve el primer valor verdadero o no vacío. Si bien esto puede parecer una solución, se queda corta en el caso de las listas. Como se demostró anteriormente, (1 o 2) en a se evalúa como Falso, mientras que (2 o 1) en a se evalúa como Verdadero. Esto sucede porque 1 se evalúa como False en un contexto booleano, lo que da como resultado que la expresión sea equivalente a False en a.
Un método más eficiente y legible es emplear una lista por comprensión o establecer una intersección. Al utilizar la comprensión de listas, puede filtrar los elementos de la primera lista en función de su presencia en la segunda lista. Por ejemplo:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2] # Returns [2]
Como alternativa, puede convertir las listas en conjuntos, realizar la intersección de conjuntos y utilizar el valor booleano del conjunto resultante. Este enfoque es ventajoso cuando se manejan elementos duplicados de manera eficiente:
S1 = set(L1) S2 = set(L2) S1.intersection(S2) # Returns set([2])
Tanto las listas vacías como los conjuntos vacíos se evalúan como Falso, lo que le permite evaluar su presencia directamente usando lógica booleana.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3