Probleme avec les list

a marqué ce sujet comme résolu.

Bonjour , j’ai un problème avec mon programme , je voudrais écrire une fonction qui reçoit 2 listes d’entiers et qui renvoie une liste contenant les éléments en commun dans les deux listes. Mais j’arrive pas la dernière étape , pour l’instant j’ai ça :

x=list = []
y=list = []
while len(list) <= 14:
    reste = 15 - len(list)
    nb_list_input = input("Entrer un nombre, encore " + str(reste) + ":")
    list.append(int(nb_list_input))
while len(list) <= 14:
    reste = 15 - len(list)
    nb_list_input = input("Entrer un nombre, encore " + str(reste) + ":")
    list.append(int(nb_list_input))

print(x)

J’ai donc deux listes différentes mais je sais pas comment faire pour trouver les nombres similaire au deux listes. Si vous pouviez m’aider ça serais sympa .

x=list = [] # Ce code compile ? Ca m'étonne :p. En tout cas il n'est pas valide ( Après vérification Python 
# ne dis rien. Ca reste une mauvaise idée de le faire de cette manière. Regarde les syntaxes que je montre en dessous ^^.)
y=list = []
while len(list) <= 14: #Pourquoi boucle tant que list (qui au passage est une fonction built-in, 
# ce qui te posera sûrement plein de problème. N'appelle pas tes variables list ( ni te 
# classes/fonctions ). Sinon je ne comprend pas cette valeur arbitraire qu'est 14
    reste = 15 - len(list) # Cette variable ne change pas de valeurs entre chaque passage de la 
# boucle, pourquoi la rédéfinir à chaque fois ?
    nb_list_input = input("Entrer un nombre, encore " + str(reste) + ":")
    list.append(int(nb_list_input)) 
while len(list) <= 14: # Même remarque que la précédente
    reste = 15 - len(list) # Même remarque aussi
    nb_list_input = input("Entrer un nombre, encore " + str(reste) + ":")
    list.append(int(nb_list_input))

print(x)

Les syntaxes pour les listes :

liste = list()
liste = [] 
# Avec une préférence pour la deuxième :p 

Hormis ça, j’avoue ne pas comprendre l’objectif de ton programme. Là si je résume il :

  • Créer deux listes
  • Boucle tant que la taille de liste1 n’est pas plus grande ou égale à 14
  • Pareil pour liste2
  • Print x ( x qui est utilisé nul part dans le programme au passage )

Tu fais des len(list) etc, alors que tes variables s’appelle x et y x). List ( je me répète) est une fonction built-in, ne l’utilise pas pour nommer tes variables Un petit conseil : divise les tâches. Commence à faire une fonction qui prend deux listes en arguments et les stockes, pour commencer.

+0 -2

Bonjour

voici un peu d’aide :

pour parcourir une liste, on utilise généralement la boucle for :

for nombre in x:
    print(nombre)

pour savoir si un élément est dans une liste, il suffit d’utiliser l’opérateur in

print (2 in [1,2,3]) #True
print (2 in [1,3]) #False

Avec ces 2 notions, tu devrais arriver à terminer ton exercice

+0 -0

Salut,

x=list = [] # Ce code compile ? Ca m'étonne :p. En tout cas il n'est pas valide ( Après vérification Python 
# ne dis rien. Ca reste une mauvaise idée de le faire de cette manière. Regarde les syntaxes que je montre en dessous ^^.)
y=list = []
while len(list) <= 14: #Pourquoi boucle tant que list (qui au passage est une fonction built-in, 
# ce qui te posera sûrement plein de problème. N'appelle pas tes variables list ( ni te 
# classes/fonctions ). Sinon je ne comprend pas cette valeur arbitraire qu'est 14
    reste = 15 - len(list) # Cette variable ne change pas de valeurs entre chaque passage de la 
# boucle, pourquoi la rédéfinir à chaque fois ?
    nb_list_input = input("Entrer un nombre, encore " + str(reste) + ":")
    list.append(int(nb_list_input)) 
while len(list) <= 14: # Même remarque que la précédente
    reste = 15 - len(list) # Même remarque aussi
    nb_list_input = input("Entrer un nombre, encore " + str(reste) + ":")
    list.append(int(nb_list_input))

print(x)

Shikamarus_Shadows

Euh… Attention à ce que tu racontes quand même, vouloir aider c’st très bien mais il faut être sûr de ce que l’on dit.

La ligne

x = list = []

est parfaitement valide, elle produit une liste vide et attache deux étiquettes dessus (qui réfèrent alors à la même liste), x et list. Là où tu as raison, c’est que nommer une variable list, c’est pas une super idée comme c’est aussi un built-in. Ça fonctionne, c’est autorisé, mais c’est pas une bonne idée.

La ligne suivante produit une deuxième liste vide et attache deux étiquettes dessus, y et list à nouveau. Donc il n’y a plus que x qui réfère la première liste, et y et list pointent sur la seconde.

La valeur arbitraire de 14 est la longueur finale (à un 1 près) souhaitée de la liste, donc le nombre d’éléments demandés qui est de 15. Comme la liste list est allongée à chaque pas de temps, la valeur de reste varie. La boucle de remplissage d’une liste est parfaitement valide. Le seul problème @Sumisowa est que lu appliques ta boucle deux fois sur list au lieu de l’appliquer une fois sur x et une fois sur y. Essaye déjà de corriger ça, et enlève cette liste list qui ne sert en fait à rien.

Ensuite, il ne sert à rien de nous dire

J’viens d’essayer et ça marche presque

Montre nous plutôt ce que tu as essayé et quel est le problème restant.

Pour l’instant, le code que tu montres essaye juste de saisir deux listes.
Je ne vois rien qui puisse sortir "les éléments en commun dans les deux listes".
De plus, il n’est pas nécessaire de prendre deux listes de même taille.

Essaye de le faire avec un truc plus simple, par exemple
x = [1,2,3,4,5,6,7,8,9]
y = [3,1,4,5,9]
et après, tu fais ton truc pour sortir les éléments en commun.

Il y a autre chose que je ne comprends pas.
Que fait-on si on a plusieurs fois le même élément dans les listes <class 'list’> ?
x = [1,2,3,4,1,2,3,4]
y = [3,1,4,5,9]

Il faut peut être regarder du côté des ensembles <class 'set’>

a = {1,2,3,4,5,67,8,9}
b={3,1,4,5,9}

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte