Exercice de programmation en python / Listes
Fermé
Makikpo
-
1 avril 2021 à 19:53
dachiasse Messages postés 1709 Date d'inscription samedi 12 septembre 2020 Statut Membre Dernière intervention 13 mai 2021 - 1 avril 2021 à 23:23
dachiasse Messages postés 1709 Date d'inscription samedi 12 septembre 2020 Statut Membre Dernière intervention 13 mai 2021 - 1 avril 2021 à 23:23
A voir également:
- Exercice de programmation en python / Listes
- Application de programmation - Guide
- Citizen code python avis - Accueil - Outils
- Liste déroulante en cascade - Guide
- Liste déroulante de choix excel - Guide
4 réponses
jee pee
Messages postés
40480
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
9 428
Modifié le 1 avril 2021 à 21:24
Modifié le 1 avril 2021 à 21:24
Bonjour,
Déjà tu as 2 boucles qui utilisent le même indice k , même si cela fonctionne, cela gène la lecture ;-)
Après tu pourrais utiliser le pas d'incrémentation de la fonction range() qui permettrait d'avancer de n en n
Déjà tu as 2 boucles qui utilisent le même indice k , même si cela fonctionne, cela gène la lecture ;-)
Après tu pourrais utiliser le pas d'incrémentation de la fonction range() qui permettrait d'avancer de n en n
Je viens de retravailler mon code. Je reçois bien l'affichage que je veux, mais les valeurs contenues dedans ne sont pas justes. Pourquoi ?
Voici le code:
Voici le code:
def List (l, n): JuyList = [] for k in range (0, len(l), n): JuyList.append([l[k]]*n) return JuyList l = [1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0] print(List(l, 5))
jee pee
Messages postés
40480
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
9 428
Modifié le 1 avril 2021 à 21:53
Modifié le 1 avril 2021 à 21:53
le *n renvoie n fois le même caractère,
moi j'effectuerais 2 boucles, une de n en n et un second niveau de 0 à n avec une liste intermédiaire des n positions à ajouter au resultat final
moi j'effectuerais 2 boucles, une de n en n et un second niveau de 0 à n avec une liste intermédiaire des n positions à ajouter au resultat final
J'ai essayé de suivre vos instructions mais j'ai maintenant un problème de range :
def List (l, n): NewList = [] for i in range (n): for v in range (0, n): NewList.append(l[v]) del(l[0]) return NewList l = [1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0] print(List(l, 5))
jee pee
Messages postés
40480
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
9 428
Modifié le 1 avril 2021 à 22:52
Modifié le 1 avril 2021 à 22:52
là tu es reparti sur ton code de départ
voila de quoi avancer par bloc, mais dans la boucle i il faut une variable intermédiaire pour creer le regroupement par bloc de n qui sera ajouté à chaque tour à NewList
voila de quoi avancer par bloc, mais dans la boucle i il faut une variable intermédiaire pour creer le regroupement par bloc de n qui sera ajouté à chaque tour à NewList
def List (l, n): NewList = [] for i in range (0, len(l)-1, n): for v in range (0, n): NewList.append(l[i+v]) return NewList l = [1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0] print(List(l, 5))
dachiasse
Messages postés
1709
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
13 mai 2021
149
Modifié le 1 avril 2021 à 23:24
Modifié le 1 avril 2021 à 23:24
Salut,
Ta description en premier message n'est pas cohérente. Tu as un bloc de 6 éléments au lieu de 5 : et nous devons créer une fonction telle que le renvoi de cette fonction donne :
[[1,0,1,1,0],[0,0,0,1,0],[0,0,0,0,0,1],[1,0,0,0,0],[0,0,0,0,0]]
Je n'ai pas essayé tes codes. J'ai fait autrement. Difficile de t'aider, mais, un indice : pense à faire une liste temporaire qui peut avoir jusqu'à 5 éléments maximum.
Je n'ai aucunement utilisé la fonction range(). Ça fonctionne très bien.
Ta description en premier message n'est pas cohérente. Tu as un bloc de 6 éléments au lieu de 5 : et nous devons créer une fonction telle que le renvoi de cette fonction donne :
[[1,0,1,1,0],[0,0,0,1,0],[0,0,0,0,0,1],[1,0,0,0,0],[0,0,0,0,0]]
Je n'ai pas essayé tes codes. J'ai fait autrement. Difficile de t'aider, mais, un indice : pense à faire une liste temporaire qui peut avoir jusqu'à 5 éléments maximum.
Je n'ai aucunement utilisé la fonction range(). Ça fonctionne très bien.