Buscando más soluciones de comparación de listas pitónicas

Ok, entonces tengo dos listas:

x = [1, 2, 3, 4]
y = [1, 1, 2, 5, 6]

Las comparo de tal manera que obtengo el siguiente resultado:

x = [3, 4]
y = [1, 5, 6]

La idea básica es revisar cada lista y compararlas. Si tienen un elemento en común, elimine ese elemento. Pero solo uno de ese elemento, no todos. Si no tienen un elemento en común, déjelo. Dos listas idénticas se convertirían en x = [], y = []

Aquí está mi solución bastante complicada y poco convincente. Espero que otros puedan recomendar una forma mejor y / o más pitónica de hacer esto. 3 bucles parece excesivo ...

    done = True

    while not done:
        done = False
        for x in xlist:
            for y in ylist:
                if x == y:
                    xlist.remove(x)
                    ylist.remove(y)
                    done = False
        print xlist, ylist

Gracias como siempre por tomarte el tiempo de leer esta pregunta. XOXO

5
задан Peach Passion 21 July 2011 в 02:30
поделиться