Deplacer une valeur contenue dans une liste

Résolu/Fermé
dan1ye Messages postés 7 Date d'inscription jeudi 31 juillet 2014 Statut Membre Dernière intervention 6 août 2014 - 31 juil. 2014 à 17:43
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 4 août 2014 à 19:17
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

JulienJust Messages postés 139 Date d'inscription mardi 25 juin 2013 Statut Membre Dernière intervention 2 septembre 2014 18
1 août 2014 à 10:45
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
0