Vérification sur liste [Résolu]

Messages postés
10
Date d'inscription
lundi 11 avril 2016
Statut
Membre
Dernière intervention
22 avril 2016
- - Dernière réponse : Almass26
Messages postés
10
Date d'inscription
lundi 11 avril 2016
Statut
Membre
Dernière intervention
22 avril 2016
- 22 avril 2016 à 14:35
Bonjour, j'ai un problème, je suis débutant en python et je n'arrive pas a vérifier l'existence d'une liste dans une autre...

Je vous laisse mon code pour y voir plus clair !

flotteDejaEnPlace = [['B2', 'B3', 'B4'], [], [], ['A1', 'B1', 'C1', 'D1'], []]
liste = ['A1', 'A2']

if liste in flotteDejaEnPlace:
print False
else:
print True



Si un élément de "liste" est déjà présent dans flotteDejaEnPlace je veux que sa m'affiche False, or à l'execution du code, il m'affiche True.
Je n'arrive pas à le faire fonctionner.

Je suis débutant !
Merci d'avance :)

Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
107
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
17 avril 2019
5
1
Merci
Bonjour,
1) liste n'existe pas dans flotteDejaEnPlace. Donc la réponse est True d'après ton programme.

2) Les éléments de "liste" sont 'A1' et 'A2' des chaines de caractères tandis que les éléments de "flotteDejaEnPlace" sont des listes donc :
réponse True

3) Par contre, si la question est que si l'un des éléments de "liste" existe dans l'une des listes de "flotteDejaEnPlace" : cela devra te donner False.

Voici une proposition pour les 3 cas :

flotteDejaEnPlace = [['B2', 'B3', 'B4'], [], [], ['A1', 'B1', 'C1', 'D1'], []]
liste = ['A1', 'A2']

resultat1=True
if liste in flotteDejaEnPlace:
resultat1=False
else:
resultat1=True
print 'resultat1 = ',resultat1


resultat2=True
for element in liste:
if element in flotteDejaEnPlace:
resultat2=False
break
print 'resultat2 = ',resultat2

resultat3=True
for element1 in liste:
for element2 in flotteDejaEnPlace:
if element1 in element2:
resultat3=False
break
if not resultat3:
break
print 'resultat3 = ',resultat3

# Mais en plus concis, cela ferait un truc comme ça :
resultat=True not in [i in j for j in flotteDejaEnPlace for i in liste]
print 'resultat = ',resultat




Bonne soirée.
HB

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Almass26
Messages postés
10
Date d'inscription
lundi 11 avril 2016
Statut
Membre
Dernière intervention
22 avril 2016
-
Merci beaucoup !
Bonne journée et merci encore !
Commenter la réponse de hbouia