Automatiser cr=c3=a9ation de variables et affectation

Le
Giuseppe
Bonjour,

Je voudrais automatiser
- la création de noms de variables,
- l'affectation d'objets à ces variables.

Exemple: créer les variables a0, a1, a2, , a1000 et affecter à ces
variables les valeurs suivantes : a0 = 10 , a1 = 11 , a2 = 12, ,
a1000 = 1010

Comment faire ? Je débute encore en Python.

J'imagine que ces deux opérations doivent se faire simultanément car il
me semble que la création d'une variable ne peut se faire que s'il y a
affectation d'un objet à celle-ci. Peut-être que je me trompe.


D'avance, je vous remercie.


Cordialement,


Giuseppe
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Francois Lafont
Le #26539723
Bonjour,
On 3/7/20 5:59 PM, Giuseppe wrote:
Je voudrais automatiser
- la création de noms de variables,
- l'affectation d'objets à ces variables.
Exemple: créer les variables a0, a1, a2, ... , a1000 et affecter à ces variables les valeurs suivantes : a0 = 10 , a1 = 11 , a2 = 12, ... , a1000 = 1010
Comment faire ? Je débute encore en Python.

Tu peux utiliser « vars()["foo"] = "bar" » qui va te définir la variable « foo »
dont la valeur référencée est la chaîne de caractère "bar".
Voici un exemple sur ma version de Python3 :
| ~$ python3
| Python 3.6.9 (default, Nov 7 2019, 10:44:02)
| [GCC 8.3.0] on linux
| Type "help", "copyright", "credits" or "license" for more information.
| >>> vars()['myvar'] = 'azerty'
| >>> print(myvar)
| azerty
| >>> for i in range(1000):
| ... vars()['var' + str(i)] = i
| ...
| >>> print(var0)
| 0
| >>> print(var2)
| 2
| >>> print(var999)
| 999
| >>> exit()
--
François Lafont
Giuseppe
Le #26539725
Parfait, merci François, c'est exactement ce que je souhaitais.
Giuseppe.
Le 07/03/2020 à 18:09, Francois Lafont a écrit :
Bonjour,
On 3/7/20 5:59 PM, Giuseppe wrote:
Je voudrais automatiser
- la création de noms de variables,
- l'affectation d'objets à ces variables.
Exemple: créer les variables a0, a1, a2, ... , a1000 et affecter à ces
variables les valeurs suivantes : a0 = 10 , a1 = 11 , a2 = 12, ... ,
a1000 = 1010
Comment faire ? Je débute encore en Python.

Tu peux utiliser « vars()["foo"] = "bar" » qui va te définir la variable
« foo »
dont la valeur référencée est la chaîne de caractère "bar".
Voici un exemple sur ma version de Python3 :
| ~$ python3
| Python 3.6.9 (default, Nov  7 2019, 10:44:02)
| [GCC 8.3.0] on linux
| Type "help", "copyright", "credits" or "license" for more information.
| >>> vars()['myvar'] = 'azerty'
| >>> print(myvar)
| azerty
| >>> for i in range(1000):
| ...     vars()['var' + str(i)] = i
| ...
| >>> print(var0)
| 0
| >>> print(var2)
| 2
| >>> print(var999)
| 999
| >>> exit()
Benoit Izac
Le #26539727
Bonjour,
Le 07/03/2020 à 17:59, Giuseppe a écrit dans le message
Je voudrais automatiser
- la création de noms de variables,
- l'affectation d'objets à ces variables.
Exemple: créer les variables a0, a1, a2, ... , a1000 et affecter à ces
variables les valeurs suivantes : a0 = 10 , a1 = 11 , a2 = 12, ... ,
a1000 = 1010
Comment faire ? Je débute encore en Python.
J'imagine que ces deux opérations doivent se faire simultanément car
il me semble que la création d'une variable ne peut se faire que s'il
y a affectation d'un objet à celle-ci. Peut-être que je me trompe.

Par curiosité, pourquoi as-tu besoin de créer 1000 variables plutôt
que d'utiliser un tableau (une liste voire un générateur de liste en
Python) pour stocker toutes ces valeurs ?
a = range(10, 1011) # ou a = list(range(10, 1011)) si nécessaire
a[0]



10
a[1000]



1010
--
Benoit Izac
Giuseppe
Le #26539731
Le 07/03/2020 à 20:58, Benoit Izac a écrit :
Bonjour,
Le 07/03/2020 à 17:59, Giuseppe a écrit dans le message
Je voudrais automatiser
- la création de noms de variables,
- l'affectation d'objets à ces variables.
Exemple: créer les variables a0, a1, a2, ... , a1000 et affecter à ces
variables les valeurs suivantes : a0 = 10 , a1 = 11 , a2 = 12, ... ,
a1000 = 1010
Comment faire ? Je débute encore en Python.
J'imagine que ces deux opérations doivent se faire simultanément car
il me semble que la création d'une variable ne peut se faire que s'il
y a affectation d'un objet à celle-ci. Peut-être que je me trompe.

Par curiosité, pourquoi as-tu besoin de créer 1000 variables plutôt
que d'utiliser un tableau (une liste voire un générateur de liste en
Python) pour stocker toutes ces valeurs ?


Oui tu as raison, dans pas mal de situations, c'est mieux.
Pour effectuer un tracé avec turtle. J'ai besoin de plusieurs tortues.
Je souhaite automatiser leur création .
a = range(10, 1011) # ou a = list(range(10, 1011)) si nécessaire
a[0]



10
a[1000]



1010
Benoit Izac
Le #26539744
Bonjour,
Le 07/03/2020 à 21:40, Giuseppe a écrit dans le message
Je voudrais automatiser
- la création de noms de variables,
- l'affectation d'objets à ces variables.
Exemple: créer les variables a0, a1, a2, ... , a1000 et affecter à ces
variables les valeurs suivantes : a0 = 10 , a1 = 11 , a2 = 12, ... ,
a1000 = 1010
Comment faire ? Je débute encore en Python.
J'imagine que ces deux opérations doivent se faire simultanément car
il me semble que la création d'une variable ne peut se faire que s'il
y a affectation d'un objet à celle-ci. Peut-être que je me trompe.

Par curiosité, pourquoi as-tu besoin de créer 1000 variables plutôt
que d'utiliser un tableau (une liste voire un générateur de liste en
Python) pour stocker toutes ces valeurs ?

Oui tu as raison, dans pas mal de situations, c'est mieux.
Pour effectuer un tracé avec turtle. J'ai besoin de plusieurs tortues.
Je souhaite automatiser leur création .

Et qu'est-ce qui t'empêche de mettre les tortues dans une liste ?
--
Benoit Izac
Giuseppe
Le #26539777
Le 08/03/2020 à 09:04, Benoit Izac a écrit :
Bonjour,
Le 07/03/2020 à 21:40, Giuseppe a écrit dans le message
Je voudrais automatiser
- la création de noms de variables,
- l'affectation d'objets à ces variables.
Exemple: créer les variables a0, a1, a2, ... , a1000 et affecter à ces
variables les valeurs suivantes : a0 = 10 , a1 = 11 , a2 = 12, ... ,
a1000 = 1010
Comment faire ? Je débute encore en Python.
J'imagine que ces deux opérations doivent se faire simultanément car
il me semble que la création d'une variable ne peut se faire que s'il
y a affectation d'un objet à celle-ci. Peut-être que je me trompe.

Par curiosité, pourquoi as-tu besoin de créer 1000 variables plutôt
que d'utiliser un tableau (une liste voire un générateur de liste en
Python) pour stocker toutes ces valeurs ?

Oui tu as raison, dans pas mal de situations, c'est mieux.
Pour effectuer un tracé avec turtle. J'ai besoin de plusieurs tortues.
Je souhaite automatiser leur création .

Et qu'est-ce qui t'empêche de mettre les tortues dans une liste ?


Rien je pense, il faudra que j'essaie cette solution. Merci Izac.
Poster une réponse
Anonyme