Bonjour,
Je dispose d'un fonction f(l) dont le paramètre est une liste l de
longueur n dont les éléments sont modifiés par la fonction.
Dans le programme principal, j'ai une liste L et je souhaite appliquer f
aux éléments de rangs ai+b pour tout i de 0 à n-1. Bref J'aimerais
créer un alias de cette sous liste pour agir sur certains éléments de L
sans modifier les autres.
Par exemple L=[0,1,2,3,4,5,6,7,8,9,10] , et je souhaite appliquer un
traitement aux rangs 1,4,7,10 ou une autre fois aux rangs 4,6,8,10.
La fonction f peut par exemple être le cumul de valeurs (1,4,7,10 donne
1,5,12,22 )
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas
Le 01/06/2015 21:45, François Couloigner a écrit :
Bonjour, Je dispose d'un fonction f(l) dont le paramètre est une liste l de longueur n dont les éléments sont modifiés par la fonction.
Dans le programme principal, j'ai une liste L et je souhaite appliquer f aux éléments de rangs ai+b pour tout i de 0 à n-1. Bref J'aimerais créer un alias de cette sous liste pour agir sur certains éléments de L sans modifier les autres.
Par exemple L=[0,1,2,3,4,5,6,7,8,9,10] , et je souhaite appliquer un traitement aux rangs 1,4,7,10 ou une autre fois aux rangs 4,6,8,10. La fonction f peut par exemple être le cumul de valeurs (1,4,7,10 donne 1,5,12,22 )
Comment faire ?
Un exemple parmi d'autres pour générer la sous liste:
def gen_sous_liste(l, a, b): # Retourne les indices a*i+b # Ne fonctionne qu'avec a >= 1 sl = [] for i in range(len(l)) : try : sl.append(l[a*i+b]) except IndexError : break return sl
Le 01/06/2015 21:45, François Couloigner a écrit :
Bonjour,
Je dispose d'un fonction f(l) dont le paramètre est une liste l de
longueur n dont les éléments sont modifiés par la fonction.
Dans le programme principal, j'ai une liste L et je souhaite appliquer f
aux éléments de rangs ai+b pour tout i de 0 à n-1. Bref J'aimerais créer
un alias de cette sous liste pour agir sur certains éléments de L sans
modifier les autres.
Par exemple L=[0,1,2,3,4,5,6,7,8,9,10] , et je souhaite appliquer un
traitement aux rangs 1,4,7,10 ou une autre fois aux rangs 4,6,8,10.
La fonction f peut par exemple être le cumul de valeurs (1,4,7,10 donne
1,5,12,22 )
Comment faire ?
Un exemple parmi d'autres pour générer la sous liste:
def gen_sous_liste(l, a, b):
# Retourne les indices a*i+b
# Ne fonctionne qu'avec a >= 1
sl = []
for i in range(len(l)) :
try :
sl.append(l[a*i+b])
except IndexError :
break
return sl
Le 01/06/2015 21:45, François Couloigner a écrit :
Bonjour, Je dispose d'un fonction f(l) dont le paramètre est une liste l de longueur n dont les éléments sont modifiés par la fonction.
Dans le programme principal, j'ai une liste L et je souhaite appliquer f aux éléments de rangs ai+b pour tout i de 0 à n-1. Bref J'aimerais créer un alias de cette sous liste pour agir sur certains éléments de L sans modifier les autres.
Par exemple L=[0,1,2,3,4,5,6,7,8,9,10] , et je souhaite appliquer un traitement aux rangs 1,4,7,10 ou une autre fois aux rangs 4,6,8,10. La fonction f peut par exemple être le cumul de valeurs (1,4,7,10 donne 1,5,12,22 )
Comment faire ?
Un exemple parmi d'autres pour générer la sous liste:
def gen_sous_liste(l, a, b): # Retourne les indices a*i+b # Ne fonctionne qu'avec a >= 1 sl = [] for i in range(len(l)) : try : sl.append(l[a*i+b]) except IndexError : break return sl
Le 01/06/2015 21:45, François Couloigner a écrit :
Bonjour, Je dispose d'un fonction f(l) dont le paramètre est une liste l de longueur n dont les éléments sont modifiés par la fonction.
Dans le programme principal, j'ai une liste L et je souhaite appliquer f aux éléments de rangs ai+b pour tout i de 0 à n-1. Bref J'aimerais créer un alias de cette sous liste pour agir sur certains éléments de L sans modifier les autres.
Par exemple L=[0,1,2,3,4,5,6,7,8,9,10] , et je souhaite appliquer un traitement aux rangs 1,4,7,10 ou une autre fois aux rangs 4,6,8,10. La fonction f peut par exemple être le cumul de valeurs (1,4,7,10 donne 1,5,12,22 )
Comment faire ?
Merci de vos réponses. Je n'ai pas été très clair sur l'objectif et détaille donc l'exemple .
def f(x) : # x est une liste for i in range(1,len(x)) : x[i]=x[i]+x[i-1]
l=[1,2,3,4,5,6,7,8,9] .......
et là je coince Par exemple l'imaginais possible que la fonction soit appliquée aux éléments de rangs pairs de l c'est à dire que l devienne [1,2,3,6,5,12,7,20,9] en utilisant un objet l' construit à partir de l, lui appliquer f et que ça modifie aussi l.
Je comprends avec votre aide qu'il sera plus simple de créer de nouvelles listes et de faire des "copies" d'éléments
Le 01/06/2015 21:45, François Couloigner a écrit :
Bonjour,
Je dispose d'un fonction f(l) dont le paramètre est une liste l de
longueur n dont les éléments sont modifiés par la fonction.
Dans le programme principal, j'ai une liste L et je souhaite appliquer f
aux éléments de rangs ai+b pour tout i de 0 à n-1. Bref J'aimerais créer
un alias de cette sous liste pour agir sur certains éléments de L sans
modifier les autres.
Par exemple L=[0,1,2,3,4,5,6,7,8,9,10] , et je souhaite appliquer un
traitement aux rangs 1,4,7,10 ou une autre fois aux rangs 4,6,8,10.
La fonction f peut par exemple être le cumul de valeurs (1,4,7,10 donne
1,5,12,22 )
Comment faire ?
Merci de vos réponses. Je n'ai pas été très clair sur l'objectif et
détaille donc l'exemple .
def f(x) : # x est une liste
for i in range(1,len(x)) :
x[i]=x[i]+x[i-1]
l=[1,2,3,4,5,6,7,8,9]
.......
et là je coince
Par exemple l'imaginais possible que la fonction soit appliquée aux
éléments de rangs pairs de l
c'est à dire que l devienne [1,2,3,6,5,12,7,20,9] en utilisant un objet
l' construit à partir de l, lui appliquer f et que ça modifie aussi l.
Je comprends avec votre aide qu'il sera plus simple de créer de
nouvelles listes et de faire des "copies" d'éléments
Le 01/06/2015 21:45, François Couloigner a écrit :
Bonjour, Je dispose d'un fonction f(l) dont le paramètre est une liste l de longueur n dont les éléments sont modifiés par la fonction.
Dans le programme principal, j'ai une liste L et je souhaite appliquer f aux éléments de rangs ai+b pour tout i de 0 à n-1. Bref J'aimerais créer un alias de cette sous liste pour agir sur certains éléments de L sans modifier les autres.
Par exemple L=[0,1,2,3,4,5,6,7,8,9,10] , et je souhaite appliquer un traitement aux rangs 1,4,7,10 ou une autre fois aux rangs 4,6,8,10. La fonction f peut par exemple être le cumul de valeurs (1,4,7,10 donne 1,5,12,22 )
Comment faire ?
Merci de vos réponses. Je n'ai pas été très clair sur l'objectif et détaille donc l'exemple .
def f(x) : # x est une liste for i in range(1,len(x)) : x[i]=x[i]+x[i-1]
l=[1,2,3,4,5,6,7,8,9] .......
et là je coince Par exemple l'imaginais possible que la fonction soit appliquée aux éléments de rangs pairs de l c'est à dire que l devienne [1,2,3,6,5,12,7,20,9] en utilisant un objet l' construit à partir de l, lui appliquer f et que ça modifie aussi l.
Je comprends avec votre aide qu'il sera plus simple de créer de nouvelles listes et de faire des "copies" d'éléments