"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 > ¿Cómo restar listas en Python?

¿Cómo restar listas en Python?

Publicado el 2024-11-06
Navegar:561

How to Subtract Lists in Python?

Restar listas: calcular la diferencia

Las listas en Python pueden contener varios elementos. Para realizar operaciones matemáticas en listas, como la resta, empleamos métodos o técnicas específicas. Exploremos cómo restar una lista de otra.

Uso de la comprensión de listas para la resta elemento por elemento

Un enfoque es utilizar una comprensión de listas, que se itera sobre la primera lista y calcula la diferencia conservando el orden original:

[item for item in x if item not in y]

Restar conjuntos para cálculos más rápidos

Si mantener el orden de los elementos no es crucial, un enfoque basado en conjuntos ofrece cálculos más rápidos:

list(set(x) - set(y))

Anulando sub para restas de lista

Para habilitar la resta de lista usando el operador infijo "-", podemos anular el método __sub__ de una clase que hereda de la lista:

class MyList(list):
    def __init__(self, *args):
        super(MyList, self).__init__(args)

    def __sub__(self, other):
        return self.__class__(*[item for item in self if item not in other])

Ejemplo de uso:

x = MyList(1, 2, 3, 4)
y = MyList(2, 5, 2)
z = x - y    # z becomes a MyList object containing the difference
Declaración de liberación Este artículo se reimprime en: 1729655176 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Ú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