Comment puis-je résoudre ce problème dans Python.
Compte tenu d'une liste d'entiers SO P>
a = [1, 2, 2, 3, 3, 3] true p>
Parce que le nombre de 1s est 1, le nombre de 2 est 2 , p>
a = [1, 2, 3, 3] false p>
car le nombre de 1s est 1, le nombre de 2 est 1 p> arr code>, écrivez une fonction qui renvoie
true code> si et uniquement si le nombre d'occurrences de chaque valeur de la liste est unique dans Python P>
6 Réponses :
def check_it(arr): occ = [arr.count(e) for e in set(arr)] return len(set(occ)) == len(occ)
Si ma compréhension de la question de l'OP est correcte, ne devrait pas check_it ([1, 2, 2, 3, 3, 3]) code> 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.
vu sur un post différent: Vérification si tous les éléments d'une liste sont uniques < Pré> xxx pré> p>
Supposons que vous ayez du code comme: avec sortie: p> prenant le code> 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 code> ne peut pas avoir une touche en double. P> p>
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. P>
Une autre solution consiste à utiliser la fonction de recherche-recherche de set-hachée à cesser de fumer tôt. P>
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 p>
a = [1, 2, 2, 3, 3, 3] Vrai Nombre de 1S est 1, nombre de 2s sont 2 , p>
a = [1, 2, 3, 3] Faux Nombre de 1s est 1, le nombre de 2S est 1 p>
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. sortie p>