2017-10-13 2 views
-1

Ich habe ein Problem mit einem sehr einfachen zweistufigen Wörterbuch. Mein Wörterbuch hat Schlüssel (numerisch), zweite Schlüssel (numerisch) und benennt Firma in Werten. Ich muss nur Taste Nr. 1 überprüfen, weil ich weiß, dass nur die Möglichkeit, dass "FORD" Name erscheint - ist Wörterbuch [i] [1] Und wie Sie sehen können - Zeichenfolge ist nicht gleich in 100% mit Schlüssel. Der Schlüssel kann "Ford" enthalten (aber der Schlüssel hat einen anderen Teilenamen: "Ford Motor"). Wenn "Ford" in jedem Wörterbuch [i] [1] erscheint, weisen Sie diesen Schlüssel dem leeren Wörterbuch "MATCHINGITEMS" zu:Werte im verschachtelten Wörterbuch vergleichen

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

Können Sie mir helfen?

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" 

Antwort

2

Wenn ich Sie richtig verstehe dies ist, was Sie brauchen:

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

Wird nicht 'zufällig I' als die dict (vermutlich) nicht eine geordnete dict, und damit der Index von enumerate kann sich ändern? –

+0

Ja, Sie haben Recht. Ich habe den Code entsprechend geändert. Es war auch nicht genau das, was OP wollte. – elzell

+0

Außerdem kann der Schlüssel mehr als 1 inkrementieren, ich denke du brauchst 'matchingitems.append (Wert ['1'])' –

Verwandte Themen