"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Entrada: ¿Cómo puedo particionar eficientemente una lista basada en una condición? Salida: ¿Cómo dividir de manera eficiente las listas en función de las condiciones?

Entrada: ¿Cómo puedo particionar eficientemente una lista basada en una condición? Salida: ¿Cómo dividir de manera eficiente las listas en función de las condiciones?

Publicado el 2025-04-14
Navegar:240

How Can I Efficiently Partition a List Based on a Condition?

Las listas de particiones basadas en las condiciones

al dividir una lista en dos basadas en una condición dada, es tentador de iterar en la lista dos veces, creando dos nuevas listas como sigue:

[&] Good = [x para x en x en x en x en x en x en x en mylists, bad = [x para x en mylist si x no en Goodvals]
good = [x for x in mylist if x in goodvals]
bad = [x for x in mylist if x not in goodvals]
Sin embargo, este enfoque requiere dos iteraciones separadas en la lista, que pueden ser ineficientes. Para mejorar el rendimiento, considere usar una iteración manual con la appización condicional:

bueno, bad = [], [] Para X en Mylist: (malo, bueno) [x en GoodVals] .Append (x)
good = [x for x in mylist if x in goodvals]
bad = [x for x in mylist if x not in goodvals]
en este código:

    Inicializamos dos listas vacías, Good and Bad, para almacenar los elementos divididos.
  • We Wee Over the Elements of MyList. GoodVals] para seleccionar la lista apropiada basada en la condición x en GoodVals.
  • Esta expresión se evalúa mal si x no cumple con la condición y la bien de otra manera.
  • Agradecemos X a la lista seleccionada usando el método de APCEPENT. uno. También se considera más elegante, ya que captura la lógica de partición de una manera concisa y legible.
Último tutorial Más>

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