2017-10-13 1 views
-1

J'ai un problème avec un dictionnaire très simple à 2 niveaux. Mon dictionnaire a des clés (numériques), des secondes clés (numériques) et des noms de sociétés dans les valeurs. Je dois vérifier SEULEMENT la clé n ° 1, parce que je sais que seule possibilité que le nom "FORD" apparaît - est dictionnaire [i] [1] Et comme vous pouvez le voir - chaîne n'est pas égale à 100% avec clé. La clé peut contenir "Ford" (mais la clé a un autre nom de pièce: "Ford Motor"), donc si "Ford" apparaît dans chaque dictionnaire [i] [1] - assignez cette clé au dictionnaire vide "MATCHINGITEMS" dans l'ordre:comparer des valeurs dans un dictionnaire imbriqué

matchingitems[1] = "Ford" 
matchingitems[2] = "Ford" etc 

Pourriez-vous m'aider?

Dictionary = { „1” : { „1” : "Ford Motor", 
        „2” : "Volkswagen Autos" 
         } 
       "2" : { "1" : "Ducati", 
         "2" : "Yamaha" 
         } 
       "3" : { "1" : "Ford", 
         "2" : "SEAT" 
        } 
       } 
matchingitems = {} 
i = 0 
for value in Dictionary.items(): 
    for key in Dictionary.items[value]: 
     i += 1 
     if "Ford" in Dictionary[i][1]: 
      matchingitems[i] = "Ford" 

Répondre

2

Si je vous comprends bien cela ne ce que vous devez:

Dictionary = { "1" : { "1" : "Ford Motor", 
        "2" : "Volkswagen Autos" 
         }, 
       "2" : { "1" : "Ducati", 
         "2" : "Yamaha" 
         }, 
       "3" : { "1" : "Ford", 
         "2" : "SEAT" 
        } 
       } 
matchingitems = {} 

for key,value in Dictionary.items(): 
    if 'Ford' in value['1']: 
     matchingitems[key] = value['1'] 

print(matchingitems) 
+0

Will not 'î' aléatoire que le dict est (probablement) pas un dict ordonné, et par conséquent l'indice de enumerate peut changer? –

+0

Oui, vous avez raison. J'ai changé le code en conséquence. Ce n'était pas exactement ce que OP voulait. – elzell

+0

Aussi, la clé peut incrémenter plus de 1, je pense que vous avez besoin de 'matchingitems.append (valeur ['1'])' –