En Python, determinar si los elementos de una lista existen en otra es esencial para diversas tareas de manipulación de datos. Este artículo explora diferentes métodos para probar esta superposición, evaluar su eficiencia y proporcionar mejores prácticas.
1. Expresión generadora
any(i in a for i in b)
Este método itera a través de una lista y verifica la pertenencia a la otra, devolviendo True si hay una coincidencia. encontró. Su complejidad temporal es O(n), donde n es la longitud de la lista más grande.
2. Establecer intersección
bool(set(a) & set(b))
Este enfoque convierte ambas listas en conjuntos y encuentra su intersección. Si la intersección no está vacía, devuelve Verdadero. La complejidad de tiempo en el peor de los casos para esto es O(n m), donde n y m son las longitudes de las listas.
3. Intersección del conjunto híbrido
a = set(a)
any(i in a for i in b)
Este método convierte solo una lista en un conjunto y recorre en iteración la otra, comprobando la pertenencia al conjunto. Evita la creación de conjuntos intermedios, haciéndolo más rápido que la intersección de conjuntos tradicional.
4. Método Isdisjoint
not set(a).isdisjoint(b)
Este enfoque utiliza el método isdisjoint de conjuntos congelados para determinar si tienen elementos comunes. Si no lo hacen, el resultado es Falso; de lo contrario, es Verdadero.
Peor caso:
En la mayoría de los casos, el método isdisjoint El método es el más rápido ya que se beneficia de las comprobaciones de membresía establecidas en tiempo constante.
Mejor caso para Generator Expression:
Factores a considerar:
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