Une liste contiendra 9 sublistes de 9 numéros. Chaque subliste doit contenir les nombres 1-9 dans n'importe quel ordre (c'est-à-dire qu'il ne doit y avoir aucune répétition / numéros manquants.) Comment vérifier que cette condition est remplie?
valide_list retournerait true, invalide_list retournerait false. P> Je suis sûr que tout () peut faire ça, mais je peux le faire 't comprendre comment. J'ai essayé beaucoup de choses comme .. p>
4 Réponses :
all([[1,2,3,4,5,6,7,8,9] == sorted(list(set(el))) for el in lists])
Nous pouvons utiliser la fonction trier code> et comparer le résultat avec la liste contenant 1 à 9
En s'asseyant au travail aujourd'hui, un collègue a également suggéré cette méthode, alors je me suis précipité chez moi et l'a essayé avec succès! Je compte maintenant que cela aurait pu être fait de nombreuses façons, mais comme novice, je ne pouvais pas voir le chemin. Merci pour cela, et d'autres solutions proposées
Je définirais une fonction de validateur pour valider d'abord un subliste. Appelez ensuite ce validateur à l'aide de tout ().
EG. P>
def isValidList(myList): return True if len(set(myList)) == 9 and max(myList) == 9 and min(myList) == 1 else False ## returns True if all sublists are valid all(isValidList(subList) for subList in some_list)
Vous pouvez supprimer la répétition de la liste intérieure en convertissant à un définir , puis vérifier que le jeu correspond au jeu de numéros valide
valid_list = [ [1, 3, 5, 7, 9, 8, 6, 4, 2], [1, 2, 3, 4, 5, 6, 7, 8, 9], [5, 4, 3, 2, 1, 9, 8, 7, 6], [1, 3, 5, 7, 9, 8, 6, 4, 2], [1, 2, 3, 4, 5, 6, 7, 8, 9], [5, 4, 3, 2, 1, 9, 8, 7, 6], [1, 3, 5, 7, 9, 8, 6, 4, 2], [1, 2, 3, 4, 5, 6, 7, 8, 9], [5, 4, 3, 2, 1, 9, 8, 7, 6], ] invalid_list = [ [1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 1, 2, 1, 2, 1, 2, 1, 2], [9, 8, 7, 7, 7, 7, 6, 5, 6], [1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 1, 2, 1, 2, 1, 2, 1, 2], [9, 8, 7, 7, 7, 7, 6, 5, 6], [1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 1, 2, 1, 2, 1, 2, 1, 2], [9, 8, 7, 7, 7, 7, 6, 5, 6], ] def validate_lists(lists): valid_set = set(range(1, 10)) return all(set(list_) == valid_set for list_ in lists) print(validate_lists(valid_list) == True) print(validate_lists(invalid_list) == False)