2010-09-15 9 views
-1

je ce dictionnairetravailler avec le dictionnaire en python

goodDay= {'Class':[1,1,0,0,0,1,0,1,0,1], 'grade':[1,0,0,1,0,1,0,1,0,1]} 

Je veux parcourir les valeurs de la première clé et aussi la deuxième et de mettre cette condition pour vérifier:

Si la valeur de K2 est 1 comment plusieurs fois est K1 est 1 et K1 est 0 et si K2 est 0 combien de fois est K1 est 0 et K1 est 1.

+7

clés de dictionnaire en python faire ne pas avoir d'ordre, donc le concept de «première» ou de «seconde» clé est vraiment dénué de sens. – recursive

+4

Votre description est difficile à déchiffrer, peut-être écrire ce que vous essayez de faire en termes plus généraux? –

+1

Que sont les K1 et K2? –

Répondre

0
c = [[0,0],[0,0]] 
for first, second in zip(goodDay['class'], goodDay['grade']): 
    c[second][first] += 1 
 

Vous comparer les deux listes dans le pairwise dictionnaire, puisque chacune des listes a seulement deux valeurs (0 et 1), cela signifie que, ensemble, (produit cartésien) nous pouvons avoir 4 options différentes (00, 01 , 10, 11). Nous utilisons donc la liste 2 * 2 pour les stocker. Et puis parcourir les deux listes et se souvenir du compte dans la liste. Ainsi, à la fin de l'exécution des lignes ci-dessus, on peut lire les résultats de la liste c comme suit:

 
c[0][0] is the number of zeros in goodDay['class'] where at the same location in goodDay['grade'] is zero 
c[0][1] is the number of zeros in goodDay['class'] where at the same location in goodDay['grade'] is one 
c[1][0] is the number of ones in goodDay['class'] where at the same location in goodDay['grade'] is zero 
c[1][1] is the number of ones in goodDay['class'] where at the same location in goodDay['grade'] is one 
+0

Peut-être que vous pourriez expliquer la seconde moitié un peu plus. (Je ne comprends pas cette partie de la question non plus.) –

+0

Le dictionnaire est comme ci-dessous: – Compuser7

+0

goodDay = {'Class': [1,1,0,0,0,1,0,1,0, 1], 'grade': [1,0,0,1,0,1,0,1,0,1]} Je veux coder de cette façon que je devrais avoir le nombre de "1" et aussi "0" en classe lorsque ma note a la valeur "1" et vice versa, c'est-à-dire lorsque ma note a la valeur "0" – Compuser7

0

code:

good_day= {'class':[1,1,0,0,0,1,0,1,0,1], 'grade':[1,0,0,1,0,1,0,1,0,1]} 
grade_class = [[0,0], 
       [0,0]] 

for grade, class_ in zip(good_day['grade'], good_day['class']): 
    grade_class[grade][class_] += 1 

for class_ in (0,1): 
    for grade in (0,1): 
     print 'You had', grade_class[grade][class_], 'grade', \ 
       grade, 'when your class was', class_ 

Sortie:

You had 4 grade 0 when your class was 0 
You had 1 grade 1 when your class was 0 
You had 1 grade 0 when your class was 1 
You had 4 grade 1 when your class was 1 
Questions connexes