0
votes

Le nombre d'occurrences de chaque valeur de la liste est unique

Comment puis-je résoudre ce problème dans Python. Compte tenu d'une liste d'entiers arr , écrivez une fonction qui renvoie true si et uniquement si le nombre d'occurrences de chaque valeur de la liste est unique dans Python

SO

a = [1, 2, 2, 3, 3, 3] true

Parce que le nombre de 1s est 1, le nombre de 2 est 2 ,

a = [1, 2, 3, 3] false

car le nombre de 1s est 1, le nombre de 2 est 1


0 commentaires

6 Réponses :


2
votes
def check_it(arr):
    occ = [arr.count(e) for e in set(arr)]
    return len(set(occ)) == len(occ)

4 commentaires

Si ma compréhension de la question de l'OP est correcte, ne devrait pas check_it ([1, 2, 2, 3, 3, 3]) retourne vrai? Il retourne faux


L'OP a déclaré que le nombre d'occurrences de chaque élément de la liste devrait être unique. Pas les éléments de la liste.


@Albinpaul j'ai compris l'erreur et j'ai corrigé


@Unsigned_arduino J'ai compris l'erreur et j'ai corrigé. Vous avez raison, j'ai mal compris la question et votre exemple devrait maintenant retourner vrai.



1
votes

0 commentaires

0
votes

Supposons que vous ayez du code comme: xxx

avec sortie: xxx

prenant le d'un liste supprime les doublons. Cela se produit car chaque entrée d'un ensemble doit être unique de la même manière qu'un dict ne peut pas avoir une touche en double.


0 commentaires

0
votes

La voie naïve est de les mettre dans un ensemble et compter sur la garantie de l'unicité défini pour effectuer le travail.

Si votre liste est énorme, vous faites une copie si tout, même si Les deux premiers éléments sont les mêmes et feraient échouer le test. C'est une très bonne solution pythonique. Nice, Moctarjallo.

Une autre solution consiste à utiliser la fonction de recherche-recherche de set-hachée à cesser de fumer tôt. xxx


0 commentaires

0
votes

Le problème consiste à écrire une fonction qui retourne true si le nombre d'occurrences de chaque valeur de la liste est unique. Donc, par exemple

a = [1, 2, 2, 3, 3, 3] Vrai Nombre de 1S est 1, nombre de 2s sont 2 ,

a = [1, 2, 3, 3] Faux Nombre de 1s est 1, le nombre de 2S est 1


0 commentaires

0
votes

Pour que les événements de la liste soient uniques, nous devons trouver toutes les occurrences. Nous pouvons utiliser le compteur du module de collections pour cela. Ensuite, utilisez un ensemble pour trouver des éléments uniques et vérifier sa taille. xxx

sortie xxx


0 commentaires