Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

Python : les listes programme

Posté par
agrafe
01-11-14 à 16:57

Bonjour, je doit écrire une fonction sur python qui prendrait pour argument une liste L, 3 réels i, j, k.
Elle doit renvoyer la liste composée des élements L[i],L[i+k],L[i+2k], en s'arrêtant au plus tard à L[j-1]
Je pourrais utiliser la fonction L[i] : renvoye l'élement positionnée en indice i
et len(L) : renvoie la longueur de la liste.
Ce sont des options et non des indications ; on peut très bien les utiliser comme non !

J'ai pensé à faire une boucle
for m in range ..

def TranchePas(L,i,j,k):
    M=[]
    for l in range(0,(j-1-i)/k):
        M=M+L[i+l*k]
    return M


Voici mon programme, mais il m'affiche une erreur ..
"TypeError: can only concatenate list (not "int") to list"
Que faire..?

Merci d'avance

Posté par
B055K3V
re 01-11-14 à 17:30

L[i+l*k] est un nombre !

il faut mettre

Citation :
M=M+[l[i+l*k]]

Posté par
B055K3V
re 01-11-14 à 17:30

sinon le programme me semble bon

bon courage avec ton exo !!

Posté par
agrafe
re : Python : les listes programme 01-11-14 à 17:38

merci beaucoup de ta réponse ! non ça ne marche pas..

File "F:/dm", line 4, in TranchePas
    M=M+[l[i+l*k]]
TypeError: 'int' object has no attribute '__getitem__'

Posté par
weierstrass
re : Python : les listes programme 01-11-14 à 17:45

c'est M=M+[L[i+l*k]], évidemment...
sinon, pour rajouter un nombre à la fin d'une liste, on a la commande "append"
ça devient M.append(L[i+l*k])...

Posté par
agrafe
re : Python : les listes programme 01-11-14 à 17:51

En fait notre prof nous fait "écrire les fonctions deja pretes des listes..
Je n'ai pas le droit d'utiliser append je pense..



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !