Acabo de leer otra pregunta de los usuarios mientras busco la forma de calcular las diferencias en dos listas.¿Por qué utilizar un conjunto para las comparaciones de listas?
Python, compute list difference
Mi pregunta es ¿por qué habría de hacerlo
def diff(a,b):
b = set(b)
return [aa for aa in a if aa not in b]
en lugar de hacer
def diff(a,b):
tmp = []
for i in a:
if(i not in b):
tmp.append(i)
return tmp
edición: simplemente se dio cuenta de la segunda función diff realmente devuelto las similitudes. Debería ser correcto ahora.
Buena explicación de por qué este último es O (n^2). Además, aquí hay algunos tiempos 'timeit' que hice en la lista de comprensión vs para el enfoque de bucle (las listas de comprensión son aproximadamente el doble de rápido en mi ejemplo): https://gist.github.com/2647005 –
wow ... eso es algo evidencia perturbador. Estoy implementando el primero seguro. – Jake