Reemplazar valores en una lista según una condición en Python
En Python, puede encontrar escenarios en los que necesite manipular elementos dentro de un lista, como reemplazar valores basados en una condición específica. Al aprovechar técnicas eficientes, puede realizar estas modificaciones de manera efectiva.
Un método implica utilizar una lista por comprensión. Por ejemplo, si tiene una lista [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y desea reemplazar elementos donde el módulo de 2 es igual a 0, puede usar la siguiente comprensión :
new_items = [x if x % 2 else None for x in items]
Esta comprensión crea una nueva lista donde cada elemento se compara con la condición (x % 2). Si la condición es Falsa, se conserva el valor original (x). De lo contrario, el elemento se reemplaza con Ninguno.
Como alternativa, puede modificar la lista existente usando un bucle for:
for index, item in enumerate(items): if not (item % 2): items[index] = None
Esta solución itera sobre la lista, identifica los elementos que cumplen con la condición (elemento % 2) y luego asigna Ninguno a esas posiciones.
El análisis de complejidad del tiempo muestra que Ambos enfoques toman aproximadamente la misma cantidad de tiempo. En Python 3.6.3, la comprensión de la lista supera ligeramente al bucle for en términos de velocidad, mientras que en Python 2.7.6, el rendimiento es comparable.
Por lo tanto, el método más eficiente para reemplazar valores en una lista basada La condición es utilizar una lista de comprensión, ya que logra el resultado deseado de manera clara y concisa. Esta técnica puede resultar especialmente útil cuando se trabaja con listas grandes, ya que minimiza la cantidad de operaciones necesarias.
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