Introduction
En Python, il est souvent nécessaire de vérifier si une liste est contenue dans une autre liste. Cela peut être un peu difficile, en particulier si l'ordre des éléments dans les listes n'a pas d'importance. Dans ce défi, vous écrirez une fonction qui vérifie si les éléments d'une liste sont contenus dans une autre liste, quelle que soit l'ordre.
Contenu de liste
Écrivez une fonction is_contained_in(a, b) qui prend deux listes en arguments et renvoie True si tous les éléments de la liste a sont contenus dans la liste b, quelle que soit l'ordre. Sinon, la fonction doit renvoyer False.
Pour résoudre ce problème, vous pouvez utiliser l'approche suivante :
- Parcourez chaque valeur unique dans la liste
a. - Pour chaque valeur, vérifiez si elle apparaît plus de fois dans la liste
aque dans la listeb. - Si une valeur apparaît plus de fois dans la liste
aque dans la listeb, renvoyezFalse. - Si toutes les valeurs de la liste
aapparaissent dans la listebau moins autant de fois qu'elles apparaissent dans la listea, renvoyezTrue.
def is_contained_in(a, b):
for v in set(a):
if a.count(v) > b.count(v):
return False
return True
is_contained_in([1, 4], [2, 4, 1]) ## True
Sommaire
Dans ce défi, vous avez appris à vérifier si une liste est contenue dans une autre liste, quelle que soit l'ordre. Vous avez écrit une fonction qui prend deux listes en arguments et renvoie True si tous les éléments de la liste a sont contenus dans la liste b, quelle que soit l'ordre.