[Python] Accès à un dictionnaire

Résolu/Fermé
Utilisateur anonyme - 31 mars 2006 à 12:10
 joseph - 16 août 2012 à 16:49
Bonjour
Voila une partie du dictionnaire que j'ai créé :
{'vb': ['0.4', '0.41', '0.42', '0.43', '0.44'], 'vc': ['0.4', '0.41', '0.42', '0.43', '0.44'], 'ib': ['1.954e-010', '8.98e-011', '7.7e-011', '7.1e-011', '6.88e-011'], 'ic': ['8.436e-011', '7.412e-011', '9.258e-011', '1.2936e-010', '1.8622e-010']}

Comment puis-je affiher la première valeur relative à ma valeur 'vb'?
Et de même, comment avoir accès à n'importe quelle valeur de mes "sous-ensembles"?
J'ai essayé plusieurs trucs mais il me dit "TypeError: unhashable type"...

Merci

3 réponses

C'est super simple

Voici si tu déclare un dictionnaire ton dictionnaire est une constante, c'est la particularité des dictionnaires.

mondict = {'vb': ['0.4', '0.41', '0.42', '0.43', '0.44'], 'vc': ['0.4', '0.41', '0.42', '0.43', '0.44'], 'ib': ['1.954e-010', '8.98e-011', '7.7e-011', '7.1e-011', '6.88e-011'], 'ic': ['8.436e-011', '7.412e-011', '9.258e-011', '1.2936e-010', '1.8622e-010']}

selon ton dictionnaire vb est un array un tableau, donc pour avoir la valeur du tableau:

monNouveauTableau = mondict['vb']

Pour avoir la valeur d'un élément du tableau vb:

maNouvelleValeurX = mondict['vb'][0]

ici 0 représente l'élément 1 de ton tableau vb. car les tableau dictionnaire ou tuple sont indexé à partir de 0
voici un autre exemple comment lopper dans ton dictionnaire

tKeys = mondict.keys()
for i in range(len(tKeys)):
for e in range(len(mondict[tkeys[i]]))
print mondict[tKeys[i]][e]

très simple non?
:)
5
bonjour j'ai besoin d'aide si ce possible quelqu'un peut m'aider j'ai un programme comme suit et je voulais savoir comme bien de fois chaque adresse IP apparait dans ma liste j'ai essayer avec dico.count mais sa ne pa marcher:


#!/usr/bin/env python
import re
fi=open("kern.log",'r')
dico={'IP':0,'DPT':0}
liste=[{'IP':0,'DPT':0}]*10
print liste.count(192.168.100.142)
for t in fi.readlines():
m=re.match(".*?NEWF.*OUT=eth0.*SRC=([0-9\.]*).*PROTO=([UDP]*).*DPT=([0-9]*).*",t)
if m is not None:
print "IP:"+ m.group(1) + " PROTO:"+ m.group(2) + " DPT:" +m.group(3)

merci d'avance
0
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
11 mars 2011 à 00:19
salut

pourquoi n'as tu pas créé une question indépendante ?
0
Utilisateur anonyme
31 mars 2006 à 12:17
Je deviens fort....
J'ai encore trouvé tout seul (enfin bon la c'était pas très compliqué......)
1
peux-tu expliquer comment tu as fait?
Merci
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
31 mars 2006 à 15:42
:-)
1