Eliminar líneas repetidas de una lista
2 participantes
Página 1 de 1.
Eliminar líneas repetidas de una lista
Hola, qué tal????
Tengo una lista formada por varias líneas, que están definidas por su punto inicial y su punto final.
Hay varias líneas que están repetidas y deseo eliminarlas, dejando sólo una.
En el ejemplo, las líneas 1 y 7 son iguales. Y las líneas 2 y 5 también son iguales. Pueden tener los puntos inicial y final intercambiados, pero son iguales de todas formas.
Debo eliminar una de ellas.
¿Cómo puedo hacerlo?
Tengo una lista formada por varias líneas, que están definidas por su punto inicial y su punto final.
Hay varias líneas que están repetidas y deseo eliminarlas, dejando sólo una.
En el ejemplo, las líneas 1 y 7 son iguales. Y las líneas 2 y 5 también son iguales. Pueden tener los puntos inicial y final intercambiados, pero son iguales de todas formas.
Debo eliminar una de ellas.
¿Cómo puedo hacerlo?
- Código:
Lista inicial
(
((102.365 153.631 12.369) (109.543 163.771 12.999));line 1
((201.200 152.940 11.366) (206.888 136.477 11.954));line 2
((180.696 134.888 9.701) (183.702 146.733 11.443));line 3
((48.666 186.002 15.631) (95.666 118.642 113.777));line 4
((206.888 136.477 11.954) (201.200 152.940 11.366));line 5
((99.555 188.347 16.763) (116.321 746.543 12.796));line 6
((102.365 153.631 12.369) (109.543 163.771 12.999));line 7
((201.834 304.442 13.333) (745.530 504.679 16.771));line 8
)
- Código:
Lista final
(
((102.365 153.631 12.369) (109.543 163.771 12.999));line 1
((201.200 152.940 11.366) (206.888 136.477 11.954));line 2
((180.696 134.888 9.701) (183.702 146.733 11.443));line 3
((48.666 186.002 15.631) (95.666 118.642 113.777));line 4
((99.555 188.347 16.763) (116.321 746.543 12.796));line 6
((201.834 304.442 13.333) (745.530 504.679 16.771));line 8
)
Re: Eliminar líneas repetidas de una lista
;;*******************************************************************************************************
(DEFUN REMOVE-DUPS (LISTE / RETLISTE) ;_ 01
(FOREACH ITEM LISTE
(IF (NOT (MEMBER ITEM RETLISTE))
(SETQ RETLISTE (CONS ITEM RETLISTE))
)
)
(REVERSE RETLISTE)
)
;;*******************************************************************************************************
(DEFUN REMOVE-DUPS (LISTE / RETLISTE) ;_ 01
(FOREACH ITEM LISTE
(IF (NOT (MEMBER ITEM RETLISTE))
(SETQ RETLISTE (CONS ITEM RETLISTE))
)
)
(REVERSE RETLISTE)
)
;;*******************************************************************************************************
A robierzo le gusta esta publicaciòn
Re: Eliminar líneas repetidas de una lista
Gracias Gabriel. Me ha servido, aunque la he modificado ligeramente, ya que había una condición que no se cumplía, cuando la líneas eran iguales, pero con los puntos inicial y final intercambiados.
- Código:
(FOREACH ITEM lista_lineas
(IF (and (NOT (MEMBER ITEM RETLISTE))
(not (member (reverse item) RETLISTE))
)
(SETQ RETLISTE (CONS ITEM RETLISTE))
)
)
Re: Eliminar líneas repetidas de una lista
Como para que se pueda entender , por favor poner la NUEVA defun completa
Temas similares
» Eliminar vértices
» Eliminar espacios "de más" en textos....
» Eliminar mensaje de error
» Elemento lista
» Transponer una lista
» Eliminar espacios "de más" en textos....
» Eliminar mensaje de error
» Elemento lista
» Transponer una lista
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|