Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/02/2016, à 09: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, à 03:30)

Hors ligne

#2 Le 29/02/2016, à 09: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, à 10: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, à 10:16)

Hors ligne

#4 Le 29/02/2016, à 10: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, à 10: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, à 10:34)

Hors ligne

#6 Le 29/02/2016, à 10: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, à 10:56

msg21

Re : RESOLU : liste indexée avec python

pingouinux a écrit :

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, à 11:06)

Hors ligne

#8 Le 29/02/2016, à 11: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, à 11: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, à 11:40

pingouinux

Re : RESOLU : liste indexée avec python

msg21 a écrit :

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, à 11: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, à 12: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, à 03:31)

Hors ligne

#13 Le 01/03/2016, à 12: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, à 12:38)

Hors ligne

#14 Le 01/03/2016, à 12:41

msg21

Re : RESOLU : liste indexée avec python

pingouinux a écrit :

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, à 12:43

msg21

Re : RESOLU : liste indexée avec python

Merci pengouinux, je vais tester

Hors ligne

#16 Le 01/03/2016, à 13: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, à 03:32)

Hors ligne

#17 Le 01/03/2016, à 14: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, à 17: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, à 03:29

msg21

Re : RESOLU : liste indexée avec python

pingouinux a écrit :

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