Deplacer une valeur contenue dans une liste [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
jeudi 31 juillet 2014
Statut
Membre
Dernière intervention
6 août 2014
-
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
-
Bonjour, je m'entrainne à utiliser des listes avec python et en ce moment j'ai ecrit une portion de code qui ne fonctionne pas entierement, pouvez vous m'aider à le débugger s'il vous plait?

#! /usr/bin/env python
#-*- coding: latin-1 -*-

"""
Objectif : deplacer la valeur contenue dans
le tabeau d une certaine position a une autre
tant de la gauche vers la droite que de la droite
vers la gauche 
p= postion de la valeur
ind=indice de la valeur
l[ind]=valeur à deplacer dans l[]
"""

l=[2,0,0,0,0,0,0,0,0] #liste de depart
print l
p =(0) # position de depart dans cet exemple

for i in range (len(l)):
	ind=p
	if i <= len(l):
		ind+=1
		l[ind]=l[ind-1]
		l[ind-1]=0
		print l,i
	p=ind
	else: 
		ind-=1
		l[ind]=l[ind+1]
		l[ind+1]=0
	print l,i



le else ne marche pas je ne sais pas pourquoi

3 réponses

Messages postés
139
Date d'inscription
mardi 25 juin 2013
Statut
Membre
Dernière intervention
2 septembre 2014
13
Bonjour,

for i in range (len(l)): signifie que ton i prendra valeur dans l'intervalle [0; len(l)-1]. Donc à aucun moment ton i ne se retrouvera supérieur à len(l).

Voilà pourquoi ton else n'est pas vérifié.

Cdlt
Messages postés
7
Date d'inscription
jeudi 31 juillet 2014
Statut
Membre
Dernière intervention
6 août 2014
1
D'accord, merci
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
897
Utilise les possibilités de Python, il ne faut pas coder du Basic en Python:
def move (iter, from_, to):
    iter.insert (to, iter.pop (from_) ) 



>>> a= [ 1, 2, 3, 4, 5,6]
>>> move (a, 2, 4)
>>> a
[1, 5, 3, 4, 2, 6]
>>> move (a, 2, -4)
>>> a
[1, 3, 5, 4, 2, 6]
>>> a= [ 1, 2, 3, 4, 5, 6]
>>> move (a, 2, 4)
>>> a
[1, 2, 4, 5, 3, 6]
>>> move (a, 5, 1)
>>> a
[1, 6, 2, 4, 5, 3]


Regarde ici:
How to move elements