Counting certain entities in list?

Fatfreek

Usenet Archive
Joined
Oct 26, 2000
Messages
96
Reaction score
0
The following is a list of entity pairs which I need to parse in certain ways. I want to be able to count how many times 7ef71e18 occurs in column 1 (6). Or how many time 7ef71eb8 occurs in the second column (2).

Any suggestions?

Len Miller

(
(<Entity name: 7ef71e00> <Entity name: 7ef71df8>)
(<Entity name: 7ef71e18> <Entity name: 7ef71eb8>)
(<Entity name: 7ef71e18> <Entity name: 7ef71ec0>)
(<Entity name: 7ef71e18> <Entity name: 7ef71ec8>)
(<Entity name: 7ef71e18> <Entity name: 7ef71f60>)
(<Entity name: 7ef71e18> <Entity name: 7ef71f68>)
(<Entity name: 7ef71e18> <Entity name: 7ef71fa0>)
(<Entity name: 7ef71ec8> <Entity name: 7ef71eb8>)
(<Entity name: 7ef71ec8> <Entity name: 7ef71ec0>)
(<Entity name: 7ef71f68> <Entity name: 7ef71f60>)
)
 
one way:
(defun test ( / l1)
(setq l1
(list
(list "<Entity name: 7ef71e00>" "<Entity name: 7ef71df8>") (list "<Entity name: 7ef71e18>" "<Entity name: 7ef71eb8>") (list "<Entity name: 7ef71e18>" "<Entity name: 7ef71ec0>") (list "<Entity name: 7ef71e18>" "<Entity name: 7ef71ec8>") (list "<Entity name: 7ef71e18>" "<Entity name: 7ef71f60>") (list "<Entity name: 7ef71e18>" "<Entity name: 7ef71f68>") (list "<Entity name: 7ef71e18>" "<Entity name: 7ef71fa0>") (list "<Entity name: 7ef71ec8>" "<Entity name: 7ef71eb8>") (list "<Entity name: 7ef71ec8>" "<Entity name: 7ef71ec0>") (list "<Entity name: 7ef71f68>" "<Entity name: 7ef71f60>") ) ) (countlist l1) ) (defun countlist (l / lst thislist cl cl2) ; (setq lst nil thislist nil cl nil cl2 nil) (foreach lst l (if (setq thislist(assoc (car lst) cl)) (setq cl (subst (list (car lst)(+ 1 (cadr thislist))) thislist cl) );setq (setq cl (cons (list (car lst) 1) cl)) )
);for

(foreach lst l
(if (setq thislist(assoc (cadr lst) cl2))
(setq cl2
(subst
(list (cadr lst)(+ 1 (cadr thislist)))
thislist
cl2)
);setq
(setq cl2 (cons (list (cadr lst) 1) cl2))
)
);for

(list cl cl2)
);d
 
Hmmm ... let's see if I understand this. I loaded both defuns in my Vlide -- then ran (test). That yielded the following:
((
("<Entity name: 7ef71f68>" 1)
("<Entity name: 7ef71ec8>" 2)
("<Entity name: 7ef71e18>" 6)
("<Entity name: 7ef71e00>" 1)
)
(("<Entity name: 7ef71fa0>" 1)
("<Entity name: 7ef71f68>" 1)
("<Entity name: 7ef71f60>" 2)
("<Entity name: 7ef71ec8>" 1)
("<Entity name: 7ef71ec0>" 2)
("<Entity name: 7ef71eb8>" 2)
("<Entity name: 7ef71df8>" 1)
))

It appears that counts for both columns is in the first list, and counts for column 2 is in second. If that is correct I think I can live with that.

Thanks, Mark.
 
Oops!! Duuuhhh! First list has counts for that list. Perfect!

Len
 

Latest threads

Back
Top