Je souhaite utiliser python pour chaîner des programmes,
Les fichiers d'entrées de ces programmes contiennent beaucoup
d'informations sous forme de vecteurs.
J'ai donc besoin de modifier des colonnes en les remplaçant par les
valeurs contenues dans des listes, sans toucher aux valeurs adjacentes.
Comme je dois lancer beaucoup de calcul, il semble intéressant de faire
des modèles de fichier.
J'aimerais savoir s'il y a un moyen d'indicer des noms de variables lors
des substitutions de chaînes de caractères.
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
Christophe
Bonjour,
L'opérateur % peut prendre n'importe quel objet comme second argument, il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte comme un dictionnaire).
Par exemple, la classe suivante permet de construire un objet dont la méthode __getitem__ évalue des expressions python :
L'opérateur % peut prendre n'importe quel objet comme second argument,
il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte
comme un dictionnaire).
Par exemple, la classe suivante permet de construire un objet dont la
méthode __getitem__ évalue des expressions python :
L'opérateur % peut prendre n'importe quel objet comme second argument, il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte comme un dictionnaire).
Par exemple, la classe suivante permet de construire un objet dont la méthode __getitem__ évalue des expressions python :
J'aimerais savoir s'il y a un moyen d'indicer des noms de variables lors des substitutions de chaînes de caractères.
Je ne pense pas. Les substitutions sont de la forme format % valeur où
valeur est, soit une variable unique, soit un tuple, soit un dictionnaire. Si c'est une variable ou un tuple on les prend les uns après les autres pour boucher les trous ; si c'est un dictionnaire les "trous" sont du genre %(nom)s et on cherche dans le dictionnaire la valeur qui correspond à la clé "nom". On ne peut pas avoir %(X[i]) comme tu le suggères (pas bête, d'ailleurs !)
Si ce n'est pas possible facilement, quelle serait la façon pythonesque de faire ?
# génération des données au hasard, pour l'exemple import random X = [ random.uniform(0,2) for i in range(10) ] Y = [ random.uniform(0,2) for i in range(10) ]
# construction d'une liste avec les éléments dans l'ordre # où ils apparaissent dans le modèle
Le %1.5f signifie de formatter un réel (float) avec un chiffre avant et 5 chiffres après la virgule (le point, en fait)
A+ Pierre
J'aimerais savoir s'il y a un moyen d'indicer des noms de variables lors
des substitutions de chaînes de caractères.
Je ne pense pas. Les substitutions sont de la forme format % valeur où
valeur est, soit une variable unique, soit un tuple, soit un
dictionnaire. Si c'est une variable ou un tuple on les prend les uns
après les autres pour boucher les trous ; si c'est un dictionnaire les
"trous" sont du genre %(nom)s et on cherche dans le dictionnaire la
valeur qui correspond à la clé "nom". On ne peut pas avoir %(X[i]) comme
tu le suggères (pas bête, d'ailleurs !)
Si ce n'est pas possible facilement, quelle serait la façon pythonesque
de faire ?
# génération des données au hasard, pour l'exemple
import random
X = [ random.uniform(0,2) for i in range(10) ]
Y = [ random.uniform(0,2) for i in range(10) ]
# construction d'une liste avec les éléments dans l'ordre
# où ils apparaissent dans le modèle
J'aimerais savoir s'il y a un moyen d'indicer des noms de variables lors des substitutions de chaînes de caractères.
Je ne pense pas. Les substitutions sont de la forme format % valeur où
valeur est, soit une variable unique, soit un tuple, soit un dictionnaire. Si c'est une variable ou un tuple on les prend les uns après les autres pour boucher les trous ; si c'est un dictionnaire les "trous" sont du genre %(nom)s et on cherche dans le dictionnaire la valeur qui correspond à la clé "nom". On ne peut pas avoir %(X[i]) comme tu le suggères (pas bête, d'ailleurs !)
Si ce n'est pas possible facilement, quelle serait la façon pythonesque de faire ?
# génération des données au hasard, pour l'exemple import random X = [ random.uniform(0,2) for i in range(10) ] Y = [ random.uniform(0,2) for i in range(10) ]
# construction d'une liste avec les éléments dans l'ordre # où ils apparaissent dans le modèle
Le %1.5f signifie de formatter un réel (float) avec un chiffre avant et 5 chiffres après la virgule (le point, en fait)
A+ Pierre
none
Bonjour,
L'opérateur % peut prendre n'importe quel objet comme second argument, il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte comme un dictionnaire).
Par exemple, la classe suivante permet de construire un objet dont la méthode __getitem__ évalue des expressions python :
C'est exactement ce que je cherchais ! Excellent !
Et dire que j'étais prêt à refaire l'opérateur % avec des expressions rationnelles...
Merci
-- Elby
Bonjour,
L'opérateur % peut prendre n'importe quel objet comme second argument,
il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte
comme un dictionnaire).
Par exemple, la classe suivante permet de construire un objet dont la
méthode __getitem__ évalue des expressions python :
L'opérateur % peut prendre n'importe quel objet comme second argument, il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte comme un dictionnaire).
Par exemple, la classe suivante permet de construire un objet dont la méthode __getitem__ évalue des expressions python :
C'est exactement ce que je cherchais ! Excellent !
Et dire que j'étais prêt à refaire l'opérateur % avec des expressions rationnelles...
Merci
-- Elby
Cémoi
Bonjour,
L'opérateur % peut prendre n'importe quel objet comme second argument, il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte comme un dictionnaire).
Je ne suis pas sur d'avoir bien compris. Te referes tu a ce qui est expliqué dans le tutoriel de Python 2.4 au chapitre 7.1, dans ce qu'ils appelent le '%(name)format' et qui consiste a affecter une variable à son format via la clé correspondante du dictionnaire passé comme parametre à l'opérateur %? Dans ce cas la, pour en revenir au modele proposé par 'none', pour acceder par exemple à X[2] il lui faut prealablement formater sa liste pour la transformer en dictionnaire contenant la cle 'X[2]'.
Ma déduction est elle correcte ?
Dans l'affirmative et pour en revenir au modele proposé, la generation d'un tel dictionnaire ne risque t'elle pas de consommer une quantité considerable de mémoire si les listes sont de grande taille, sachant qu'il faut une clé par element de chaque liste ?
Y a t'il pour l'opérateur % une autre syntaxe permettant d'acceder a un element d'une liste, elle-meme etant une valeur d'un dictionnaire (dans le cas du modele de 'none', 'X' serait la clé et la liste X serait sa valeur) ?
Merci pour vos réponses.
Laurent
Par exemple, la classe suivante permet de construire un objet dont la méthode __getitem__ évalue des expressions python :
L'opérateur % peut prendre n'importe quel objet comme second argument,
il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte
comme un dictionnaire).
Je ne suis pas sur d'avoir bien compris.
Te referes tu a ce qui est expliqué dans le tutoriel de Python 2.4 au
chapitre 7.1, dans ce qu'ils appelent le '%(name)format' et qui consiste
a affecter une variable à son format via la clé correspondante du
dictionnaire passé comme parametre à l'opérateur %?
Dans ce cas la, pour en revenir au modele proposé par 'none', pour
acceder par exemple à X[2] il lui faut prealablement formater sa liste
pour la transformer en dictionnaire contenant la cle 'X[2]'.
Ma déduction est elle correcte ?
Dans l'affirmative et pour en revenir au modele proposé, la generation
d'un tel dictionnaire ne risque t'elle pas de consommer une quantité
considerable de mémoire si les listes sont de grande taille, sachant
qu'il faut une clé par element de chaque liste ?
Y a t'il pour l'opérateur % une autre syntaxe permettant d'acceder a un
element d'une liste, elle-meme etant une valeur d'un dictionnaire (dans
le cas du modele de 'none', 'X' serait la clé et la liste X serait sa
valeur) ?
Merci pour vos réponses.
Laurent
Par exemple, la classe suivante permet de construire un objet dont la
méthode __getitem__ évalue des expressions python :
L'opérateur % peut prendre n'importe quel objet comme second argument, il suffit qu'il ait une méthode __getitem__ (donc qu'il se comporte comme un dictionnaire).
Je ne suis pas sur d'avoir bien compris. Te referes tu a ce qui est expliqué dans le tutoriel de Python 2.4 au chapitre 7.1, dans ce qu'ils appelent le '%(name)format' et qui consiste a affecter une variable à son format via la clé correspondante du dictionnaire passé comme parametre à l'opérateur %? Dans ce cas la, pour en revenir au modele proposé par 'none', pour acceder par exemple à X[2] il lui faut prealablement formater sa liste pour la transformer en dictionnaire contenant la cle 'X[2]'.
Ma déduction est elle correcte ?
Dans l'affirmative et pour en revenir au modele proposé, la generation d'un tel dictionnaire ne risque t'elle pas de consommer une quantité considerable de mémoire si les listes sont de grande taille, sachant qu'il faut une clé par element de chaque liste ?
Y a t'il pour l'opérateur % une autre syntaxe permettant d'acceder a un element d'une liste, elle-meme etant une valeur d'un dictionnaire (dans le cas du modele de 'none', 'X' serait la clé et la liste X serait sa valeur) ?
Merci pour vos réponses.
Laurent
Par exemple, la classe suivante permet de construire un objet dont la méthode __getitem__ évalue des expressions python :