Vérification sur liste [Résolu]

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

Votre réponse

1 réponse

Meilleure réponse
Messages postés
90
Date d'inscription
mardi 30 juillet 2013
Dernière intervention
22 novembre 2018
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 97 internautes nous ont dit merci ce mois-ci

Almass26
Messages postés
10
Date d'inscription
lundi 11 avril 2016
Dernière intervention
22 avril 2016
-
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.