Vérification sur liste [Résolu]

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

2 réponses

Répondre au sujet
hbouia 87 Messages postés mardi 30 juillet 2013Date d'inscription 3 avril 2018 Dernière intervention - 19 avril 2016 à 21:28
+1
Utile
1
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
Cette réponse vous a-t-elle aidé ?  
Almass26 10 Messages postés lundi 11 avril 2016Date d'inscription 22 avril 2016 Dernière intervention - 22 avril 2016 à 14:35
Merci beaucoup !
Bonne journée et merci encore !
Commenter la réponse de hbouia

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.