Liste verification
Résolu
maxixime
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je cherche un moyen pour vérifier que les occurrence d'une liste appartienne bien a une autre liste
ex:
lst1 = [1,2,3,4,5,6,7,8,9]
lst2 = [1,5,8]
pour que si les élements de lst2 sont dans lst1 il me return True
je cherche un moyen pour vérifier que les occurrence d'une liste appartienne bien a une autre liste
ex:
lst1 = [1,2,3,4,5,6,7,8,9]
lst2 = [1,5,8]
pour que si les élements de lst2 sont dans lst1 il me return True
A voir également:
- Liste verification
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Verification lien internet - Guide
- Site dangereux liste - Guide
12 réponses
Bonjour,
Je remets ce que j'avais mis plus haut car, ça me paraît clair :-)
Dès qu'un élément n'est pas dans la liste, il faut renvoyer False. S'ils sont tous dans la liste, donc à la fin de la boucle for, tu renvoies True.
Je remets ce que j'avais mis plus haut car, ça me paraît clair :-)
Dès qu'un élément n'est pas dans la liste, il faut renvoyer False. S'ils sont tous dans la liste, donc à la fin de la boucle for, tu renvoies True.
Bonsoir,
Une boucle parcoure les données de list2.
Pour chaque valeur (V) de list2, une seconde boucle parcoure List1 pour comparer à V.
A la première absence, tu sors des deux boucles et retourne False.
Si tu trouve tout, tu retournes True
Une boucle parcoure les données de list2.
Pour chaque valeur (V) de list2, une seconde boucle parcoure List1 pour comparer à V.
A la première absence, tu sors des deux boucles et retourne False.
Si tu trouve tout, tu retournes True
oui c'est ce que j'ai pensé faire mais impossible d'écrire quelque chose qui fonctionne, mon programme vérifie uniquement la première donnée de lst2
Pour que quelqu'un puisse voir ce qui ne va pas dans ton code, il faut le poster.
Pense à utiliser la coloration syntaxique.
Pense à utiliser la coloration syntaxique.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pas besoin d'une double boucle for.
1/ Tu parcours la liste2
2/ Tu renvoies False dès qu'un élément n'est pas dans liste1 (opérateur in).
3/ Sinon, tu renvoie True
1/ Tu parcours la liste2
2/ Tu renvoies False dès qu'un élément n'est pas dans liste1 (opérateur in).
3/ Sinon, tu renvoie True
ça ferais un truc du genre ?
for i in lst1 :
if i in lst2 :
return True
else :
return False
for i in lst1 :
if i in lst2 :
return True
else :
return False
Ca brûle, mais c'est pas tout à fait juste.
Dès qu'un élément n'est pas dans la liste, c'est qu'il faut renvoyer False. S'ils sont tous dans la liste, donc à la fin de la boucle for, tu renvoies True.
C'est plutôt for i in lst2 (et non lst1)
Note : n'oublie pas de tenir compte de la remarque de whismeril sur la coloration syntaxique.
Exemple :
<code python>ici tu mets ton code</code>
Dès qu'un élément n'est pas dans la liste, c'est qu'il faut renvoyer False. S'ils sont tous dans la liste, donc à la fin de la boucle for, tu renvoies True.
C'est plutôt for i in lst2 (et non lst1)
Note : n'oublie pas de tenir compte de la remarque de whismeril sur la coloration syntaxique.
Exemple :
<code python>ici tu mets ton code</code>
def apartenance (lst1 , lst2) : for c in lst2 : if c not in lst1 : return False else : return True lst = [1,2,3,4,5,6,7] lsttest = [1,4,9] test = apartenance (lsttest,lst) print (test)
je viens d'écrire ça mais le problème est qu'il me renvoi True, j'ai l'impression qu'il test uniquement le première éléments
Bonjour,
Je ne connaissait pas l'instruction in (je ne fais pas de Python...).
Mais dans ma première réponse, je t'ai dis de renvoyer Fasle dès qu'il manque une valeur et True quand toute la recherche est faite.
Ce n'est pas ce que fait ton code.
Je ne connaissait pas l'instruction in (je ne fais pas de Python...).
Mais dans ma première réponse, je t'ai dis de renvoyer Fasle dès qu'il manque une valeur et True quand toute la recherche est faite.
Ce n'est pas ce que fait ton code.
bonjours,
je vois pas très bien ce que tu veux dire, la il est censé renvoyer False lorsque que un élement ne se trouve pas dans la seconde liste
je vois pas très bien ce que tu veux dire, la il est censé renvoyer False lorsque que un élement ne se trouve pas dans la seconde liste
comme ça, j'ai vraiment du mal avec cette fonction dsl :s
def apartenance (lst1 , lst2) : for c in lst2 : if c not in lst1 : return False return True lst = [1,2,3,4,5,6,7] lsttest = [1,4,6] test = apartenance (lsttest,lst) print (test)
Ben, faut faire attention.
Dans ton post initial, tu mets :
lst1 = [1,2,3,4,5,6,7,8,9]
lst2 = [1,5,8]
pour que si les élements de lst2 sont dans lst1 il me return True
Dans ce cas, il faut bien faire : for i in lst2
Maintenant, si tu souhaites vérifier les éléments de lst1. Là oui, il faut bien mettre : for i in lst1.
Cdlt,
Dans ton post initial, tu mets :
lst1 = [1,2,3,4,5,6,7,8,9]
lst2 = [1,5,8]
pour que si les élements de lst2 sont dans lst1 il me return True
Dans ce cas, il faut bien faire : for i in lst2
Maintenant, si tu souhaites vérifier les éléments de lst1. Là oui, il faut bien mettre : for i in lst1.
Cdlt,
cependant il me reste un problème, je suis en train de programmer le jeu des chiffres et des lettres mais dans cette vérification il regarde juste si l'élément existe dedans alors que je voudrais que l'utilisateur ne puisse se servir que d'une seul fois chaque élément de lst1 (choix lettres) dans lst2(choix du joueur)
par exemple:
lst1=[1,2,3,4,5,6]
lst2=[1,2,4,4]
j'aimerai qu'il me donne False
par exemple:
lst1=[1,2,3,4,5,6]
lst2=[1,2,4,4]
j'aimerai qu'il me donne False
Pour vérifier l'appartenance d'un groupe d'éléments dans une liste on peut utiliser all. C'est très efficace et court.
"alors que je voudrais que l'utilisateur ne puisse se servir que d'une seul fois chaque élément de lst1 (choix lettres) dans lst2(choix du joueur)"
Ce n'est pas le rôle de la fonction appartenance, il faut aussi réfléchir à la façon de concevoir la résolution d'un problème. Dans ton cas, il faut créer une fonction permettant d'enregistrer les valeurs dans une liste en vérifiant qu'elle n'était déjà pas présente auparavant.
Ça pourrait être une fonction toute simple qui permettrait d'insérer une valeur dans une liste à condition que cette valeur ne soit pas déjà présente. Si elle est présente, la fonction retourne False, sinon True...
Ensuite utiliser cette fonction lors de la demande utilisateur afin d'entrer ses chiffres et ses lettres.
def appartenance(lst1, lst2): return all(i in lst1 for i in lst2)
"alors que je voudrais que l'utilisateur ne puisse se servir que d'une seul fois chaque élément de lst1 (choix lettres) dans lst2(choix du joueur)"
Ce n'est pas le rôle de la fonction appartenance, il faut aussi réfléchir à la façon de concevoir la résolution d'un problème. Dans ton cas, il faut créer une fonction permettant d'enregistrer les valeurs dans une liste en vérifiant qu'elle n'était déjà pas présente auparavant.
Ça pourrait être une fonction toute simple qui permettrait d'insérer une valeur dans une liste à condition que cette valeur ne soit pas déjà présente. Si elle est présente, la fonction retourne False, sinon True...
def insert(valeur, liste): if valeur not in liste: liste.append(valeur) return True return False
Ensuite utiliser cette fonction lors de la demande utilisateur afin d'entrer ses chiffres et ses lettres.