Vérification sur liste

Résolu
Almass26 Messages postés 10 Date d'inscription lundi 11 avril 2016 Statut Membre Dernière intervention 22 avril 2016 - 16 avril 2016 à 15:45
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 :)

1 réponse

hbouia Messages postés 112 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 22 novembre 2022 12
19 avril 2016 à 21:28
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
1
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
Merci beaucoup !
Bonne journée et merci encore !
0
Rejoignez-nous