Pages : 1
#1 Le 29/02/2016, à 08:41
- msg21
RESOLU : liste indexée avec python
1-Je n'arrive pas construire en python une liste indexée comme suit :
G={a_1,.....,a_n} (a_i des entiers)
car j'aurais besoin à manipuler les a_i
2- comment créer une liste de tableaux et comment y rajouter un nouveau tableau
Merci d'avance pour votre aide.
Dernière modification par msg21 (Le 02/03/2016, à 02:30)
Hors ligne
#2 Le 29/02/2016, à 08:55
- pingouinux
Re : RESOLU : liste indexée avec python
Bonjour,
Je ne suis pas sûr d'avoir bien compris, mais voici des indications.
Question 1 :
G=['a0','a1','a2','a3']
print(G[2])
G={1:'a1', 2:'a2', 3:'a3'}
print(G[2])
G=list(range(1,4))
print(G)
Résultat
a2
a2
[1, 2, 3]
Question 2 :
tablo1=[11,12,13]
tablo2=[21,22,23]
tablo3=[31,32,33]
liste_tablo=[]
liste_tablo.append(tablo1)
liste_tablo.append(tablo2)
liste_tablo.append(tablo3)
print(liste_tablo)
Résultat
[[11, 12, 13], [21, 22, 23], [31, 32, 33]]
Hors ligne
#3 Le 29/02/2016, à 09:15
- msg21
Re : RESOLU : liste indexée avec python
Merci pingouinux :
Pour la deuxième question c'est ce que je veux.
Mais pour la première je précise ceci:
je veux déclarer des points a_i d'un graphe G (i est un entier)
Dernière modification par msg21 (Le 29/02/2016, à 09:16)
Hors ligne
#4 Le 29/02/2016, à 09:20
- pingouinux
Re : RESOLU : liste indexée avec python
je veux déclarer des points a_i d'un graphe G (i est un entier)
Peux-tu donner un exemple ?
Hors ligne
#5 Le 29/02/2016, à 09:31
- msg21
Re : RESOLU : liste indexée avec python
G={a_0,a_1,....,a_n}
n un entier assez grand, donc on ne peut pas écrire tout les a_i dans G
pour i =125, a_i=317.
autrement dit les a_i vont dépendre de i (a index i)
L’équivalent en C :
pour i : 0<i<78; int a_i
Dernière modification par msg21 (Le 29/02/2016, à 09:34)
Hors ligne
#6 Le 29/02/2016, à 09:49
- pingouinux
Re : RESOLU : liste indexée avec python
Tu peux utiliser un dictionnaire.
G={125:317, 127:450}
G[135]=503
print(G)
print(G[127])
Résultat
{135: 503, 125: 317, 127: 450}
450
Hors ligne
#7 Le 29/02/2016, à 09:56
- msg21
Re : RESOLU : liste indexée avec python
Tu peux utiliser un dictionnaire.
G={125:317, 127:450} G[135]=503 print(G) print(G[127])
Résultat
{135: 503, 125: 317, 127: 450} 450
Je vais essayer le dictionnaire, mais est ce qu'on peut pas trouver un équivalent du langage C pour déclarer :
L’équivalent en C :
pour i : 0<i<708; int a_i
Dernière modification par msg21 (Le 29/02/2016, à 10:06)
Hors ligne
#8 Le 29/02/2016, à 10:13
- pingouinux
Re : RESOLU : liste indexée avec python
L’équivalent en C :
pour i : 0<i<708; int a_i
Ce que tu montres n'est pas du C, et je ne comprends pas ce que tu veux faire.
Hors ligne
#9 Le 29/02/2016, à 10:21
- msg21
Re : RESOLU : liste indexée avec python
Je veux l'équivalent en python de ce code en C :
for (i = 0; i < n; i++) {
int a_i;
}
Hors ligne
#10 Le 29/02/2016, à 10:40
- pingouinux
Re : RESOLU : liste indexée avec python
Je veux l'équivalent en python de ce code en C :
for (i = 0; i < n; i++) { int a_i; }
Ce code ne fait que déclarer la variable a_i à chaque itération, et cette variable n'est plus connue quand tu sors de la boucle.
Hors ligne
#11 Le 29/02/2016, à 10:47
- msg21
Re : RESOLU : liste indexée avec python
Ok. Je vais essayer de faire autrement. Et merci beaucoup pour votre aide.
Hors ligne
#12 Le 01/03/2016, à 11:21
- msg21
Re : RESOLU : liste indexée avec python
J'espère qu'on m'aide pour ce problème :
Dès que je sors de la boucle, la liste_1 n'est pas gardée, comment faire pour la garder et l'utiliser après :
Dernière modification par msg21 (Le 02/03/2016, à 02:31)
Hors ligne
#13 Le 01/03/2016, à 11:35
- pingouinux
Re : RESOLU : liste indexée avec python
Dès que je sors de la boucle, la liste_1 n'est pas gardée, comment faire pour la garder et l'utiliser après :
C'est parce que tu ne définis pas liste_1, mais n fois la même variable liste_j.
Ajouté : Tu veux sans doute faire ceci
liste={}
for j in range(n):
if G[0][j]==1 :
liste[j]=[n-1,j,0]
print liste[j]
else :
liste[j]=[0,j,0]
print liste[j]
print liste[1]
Dernière modification par pingouinux (Le 01/03/2016, à 11:38)
Hors ligne
#14 Le 01/03/2016, à 11:41
- msg21
Re : RESOLU : liste indexée avec python
Dès que je sors de la boucle, la liste_1 n'est pas gardée, comment faire pour la garder et l'utiliser après :
C'est parce que tu ne définis pas liste_1, mais n fois la même variable liste_j.
Ajouté : Tu veux sans doute faire ceci
liste={} for j in range(n): if G[0][j]==1 : liste[j]=[n-1,j,0] print liste[j] else : liste[j]=[0,j,0] print liste[j] print liste[1]
Merci pour votre réponse :
Je n'arrive pas : comme vous l'avez constaté je veux construire les liste_i pour les utiliser pour après, avez vous une idée, pengouinux?
Hors ligne
#15 Le 01/03/2016, à 11:43
- msg21
Re : RESOLU : liste indexée avec python
Merci pengouinux, je vais tester
Hors ligne
#16 Le 01/03/2016, à 12:31
- msg21
Re : RESOLU : liste indexée avec python
J'ai testé le code :
Pour moi la liste est une liste de tableaux ( qui va contenir des tableaux )
Je me demande pourquoi il s'affiche l'erreur :
Traceback (most recent call last):
File "great.py", line 48, in <module>
liste[j]=liste[j].append(F(k,T))
File "great.py", line 5, in F
l= len(T)
TypeError: object of type 'int' has no len()
Dernière modification par msg21 (Le 02/03/2016, à 02:32)
Hors ligne
#17 Le 01/03/2016, à 13:09
- pingouinux
Re : RESOLU : liste indexée avec python
l= len(T) TypeError: object of type 'int' has no len()
for T in liste[k] : liste[j]=liste[j].append(F(k,T))
Le message est explicite : liste[k] est une liste d'entiers, donc T est un entier, et tu essayes de calculer len(T) dans la fonction F.
Hors ligne
#18 Le 01/03/2016, à 16:35
- msg21
Re : RESOLU : liste indexée avec python
Vous avez raison Pengouinux.... je vais essayer de faire des modifications si je peux, merci encore.
Hors ligne
#19 Le 02/03/2016, à 02:29
- msg21
Re : RESOLU : liste indexée avec python
Tu peux utiliser un dictionnaire.
G={125:317, 127:450} G[135]=503 print(G) print(G[127])
Résultat
{135: 503, 125: 317, 127: 450} 450
Effectivement, c'est avec le dictionnaire que j'ai trouvé uns solution à mon problème.
Merci pingouinux
Hors ligne