Author Topic: How to process this List.  (Read 1309 times)

0 Members and 1 Guest are viewing this topic.

rayakmal

  • Newt
  • Posts: 49
How to process this List.
« on: September 28, 2020, 09:38:29 PM »
I have this list, its length varies
( (ptA1 ptA2 ptA3 ...... ptAn)
  (ptB1 ptB2 ptB3 ...... ptBn)
  (ptC1 ptC2 ptC3 ...... ptCn)
  ...........................
  (ptN1 ptN2 ptN3 ...... ptNn)
)


How can I get a list like this (I want to create Polyline(s) from it):

( (ptA1 ptB1 ptC1 .... ptN1)
  (ptA2 ptB2 ptC2 .... ptN2)
  (ptA3 ptB3 ptC3 .... ptN3)
  .........................
  (ptAN ptBn ptCn .... ptNn)
)

Any help is greatly appreciated.

rayakmal

  • Newt
  • Posts: 49
Re: How to process this List.
« Reply #1 on: September 28, 2020, 10:30:32 PM »
I tried this, seems to work.

Code: [Select]

(defun C:FOO1 ()

  (setq lst (list (list "A1" "A2" "A3" "A4" "A5" "A6")
                  (list "B1" "B2" "B3" "B4" "B5" "B6")
                  (list "C1" "C2" "C3" "C4" "C5" "C6")
            )
  )

  (setq idx 0)
  (setq NNlst '())
  (repeat (length (nth 0 lst))
    (setq Nlst '())
    (foreach n lst
      (setq Nlst (append Nlst (list (nth idx n))))
      (princ nlst) (princ "\n")
    )
    (setq NNlst (append NNlst (list Nlst)))
    (setq idx (+ 1 idx))
  );end repeat

  (princ)
)

Result:
Code: [Select]
(("A1" "B1" "C1") ("A2" "B2" "C2") ("A3" "B3" "C3") ("A4" "B4" "C4") ("A5" "B5"
"C5") ("A6" "B6" "C6"))

bruno_vdh

  • Newt
  • Posts: 107
Re: How to process this List.
« Reply #2 on: September 29, 2020, 02:53:56 AM »
Hello
Maybe like this?
Code: [Select]
_$ (apply 'mapcar (cons 'list lst))
(("A1" "B1" "C1") ("A2" "B2" "C2") ("A3" "B3" "C3") ("A4" "B4" "C4") ("A5" "B5" "C5") ("A6" "B6" "C6"))
_$

rayakmal

  • Newt
  • Posts: 49
Re: How to process this List.
« Reply #3 on: September 29, 2020, 09:46:37 PM »
That is awesome. Thanks a lot, Bruno.  :yay!:

Hello
Maybe like this?
Code: [Select]
_$ (apply 'mapcar (cons 'list lst))
(("A1" "B1" "C1") ("A2" "B2" "C2") ("A3" "B3" "C3") ("A4" "B4" "C4") ("A5" "B5" "C5") ("A6" "B6" "C6"))
_$

bruno_vdh

  • Newt
  • Posts: 107
Re: How to process this List.
« Reply #4 on: September 30, 2020, 03:31:56 PM »
Glad to have been able to help
Bruno