¿Pitón proporciona una manera elegante de verificar la "igualdad" de secuencias de diferentes tipos? El siguiente trabajo, pero parece bastante feo y detallado para el código Python:Manera elegante de comparar secuencias
def comp1(a, b):
if len(a) != len(b):
return False
for i, v in enumerate(a):
if v != b[i]:
return False
return True
El siguiente es un poco más corto, pero también menos eficiente, ya que se crea una tercera secuencia:
def comp2(a, b):
for l, r in map(None, a, b):
if l != r:
return False
return True
shoehorning una de esos ejemplos en una lista de comprensión tampoco es lo que estoy buscando.
Editar: Lo ideal es buscar una solución que no cree otra secuencia durante la comparación.
Eso crea dos listas adicionales. Como las listas pueden ser largas, me gustaría evitar esto. – schickb
@schickb: ¿Cuánto tiempo estamos hablando? Según el título y la primera frase de su publicación, es justo poner la elegancia como la máxima prioridad y la eficiencia como una bonificación. Para mí, la conversión a (nuevas) listas es, con mucho, la solución más elegante y más "eficiente en cuanto a programadores". –
@John, sí, estoy de acuerdo después de algunas pruebas más. Esta solución es en realidad mucho más rápida que incluso el ciclo enumerate. Sin embargo, estoy seguro de que cambia con el tamaño de una secuencia. Marcaré esta como la respuesta a pesar de que tupla (a) == tupla (b) parece ser mejor. – schickb