Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

 

Est il possible de compter le nombre d'éléments constituant une liste?

Par exemple si j'ai une liste de la forme ( a b a c b a c c a a),j'aimerai obtenir a partir de cette liste la liste suivante ((a 5) (b 2) (c 3))

 

Merci pour votre aide ;)

Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson

Posté(e)

Salut,

 

Question maintes fois posée.

 

(defun groupeCompte (liste / paire resultat)
 (foreach n liste
   (setq resultat
   (if (setq paire (assoc n resultat))
     (subst (cons n (1+ (cdr paire))) paire resultat)
     (cons (cons n 1) resultat)
   )
   )
 )
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonjour Gile,

 

Je t'assure que j'avais recherché sur le forum et sur internet avec plusieurs appellation comme classer,dénombrer,ranger,etc...les éléments/ atomes d'une liste mais sans succès.J'ai bien trouvé un tas de lisp relatif au manipulation de liste (comme sur ton site gileCAD) mais pas ce que je recherchais. Je suis peut être passé à coté ou ma méthode de recherche n'est pas la bonne :)

En plus j'ai toujours pour principe de chercher par moi même avant de solliciter votre aide et vos conseils et c'est vrai que ce site est génial pour l’entraide :)

Merci pour ton lisp qui va me permettre de progresser. Y a plus qu'a regardé comment tout cela s'articule pour comprendre son fonctionnement ;)

Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson

Posté(e)

Merci Patrick_35

 

Je dois pas avoir une méthode de recherche au point...je vais regardé tout cela :rolleyes:

Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson

Posté(e)
(defun f (l)
 ;;by ElpanovEvgeniy
 ;;(f '(a b a c b a c c a a))
 ;;((A . 5) (B . 2) (C . 3))
 (mapcar (function (lambda (a) (cons a (length (vl-remove-if-not (function (lambda (B) (equal a B))) l)))))
         (acet-list-remove-duplicates l nil)
 ))

Evgeniy

Posté(e)

Thanks for your help Elpanov :)

 

However (acet-list-remove-duplicates l nil) its available only if you have express tools installed

Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité