Python - Nom de variable automatic

Fermé
H.A.K - 3 juil. 2009 à 11:53
 fred - 21 juil. 2009 à 10:18
Bonjour,
Mon probleme est tres simple, mais je n ai malheureusement pas trouver mon bonheur en cherchant sur le net (peut etre pas les bons mots clefs!)
Alors, je souhaiterais donner un nom de variable "automatiquement" a mes matrices.

Dans un fichier .txt (Cons.txt), j'ai les numero de mes simulations, comme suit:
A0000
A0001
A0002
...

Ensuite, je veux creer une matrice pour chaque simulation, ayant le nom suivant:
mDSCA0000,mDSCA0001,...., avec en general mDSC = np.zeros((7*8+1,7),float)

J ai fait ainsi:

# Cons selection
fcon=open('Cons.txt','r')
i_con=-1

for con_line in fcon:
i_con=i_con+1
mDSC=str('mDSC')
for i in np.arange(0,5):
if (i==0):
con = con_line[i]
else:
con = con + con_line[i]
mDSC=mDSC+con

Mais de cette maniere, j assigne a mDSC un string (mDSC+con),
et des lors que je fais mDSC = np.zeros((7*8+1,7),float), je perd le nom de variable "mDSC+con",
et si je fais mDSC+con = np.zeros((7*8+1,7),float), ca ne marche pas bien sur....

Tout idee est la bienvenue :)

Merci!
A voir également:

1 réponse

Vouloir donner des noms dynamiques à des variables imposes bien souvent de passer par commandes end strings et de les exécuter ensuite. Ca alourdit forcément le code.
Pourquoi ne pas utiliser un tableau pour ranger tes matrices. Si le tableau s'appelle 'matrice' alors tu auras matrice[0], matrice[1], etc. C'est con mais c'est une façon de labellisé un objet. Ets-ce que ça marchera dans ton code ? Pourquoi pas. C'est juste une question d'organisation.
Autre solution: le dictionnaire si tu tiens vraiment à donner un nom à ta matrice. {"mDSCA0000":lamatrice, "mDSCA0001", lautrematrice}
1