2016-05-28 16 views
0

Ich habe eine Funktion, die Wörterbuchwerte zu subdict sammelt, wie füge ich diese an mein Hauptwörterbuch als verschachtelter Eintrag an?Unterverzeichnis an Hauptwörterbuch anhängen

Dict = {} 
def getDetail(): 
    subdict = {} 
    first_name = input("Enter first name") 
    if first_name.lower() == 'quit': 
     return None 
    else: 
     last_name = input("Enter last name") 
     nick_name = input("Enter nickname") 
     address = input("Enter address") 
     number = input("Enter phone number") 
     subdict['nick'] = nick_name 
     subdict['firstname'] = first_name 
     subdict['lastname'] = last_name 
     subdict['address'] = address 
     subdict['number'] = number 
     return subdict 

Ich möchte das Ergebnis einer verschachtelten Eintrag zurückzukehren, indiziert durch ['nick'] so Dict wie diese

{'Johnny': {'firstname': 'John', 'lastname': 'Johnson', 'address': '103 Alpine Drive', 'nick':'Johnny', 'number': '021-233-4555'}}

+4

'Dict [' subdicted '] = getDetail() '? – Will

+1

Können Sie erläutern, wie das Ergebnis aussehen soll? Versuchen Sie, ein Diktat von Verzeichniseinträgen zu erstellen, in denen der Schlüssel ein Name ist (wie ein Telefonbuch)? Willst du nur, dass Dict eine Liste von Untertönen ist? Oder ist es das, was Will oben vorgeschlagen hat? –

+1

Ich möchte, dass die Subdict-Einträge verschachtelte Wörterbücher sind, die durch Nickname in Dict wie folgt indexiert werden: '{'Johnny': {'Vorname': 'John', 'Nachname': 'Johnson', 'Adresse': '103 Alpine Drive' , 'Nick': 'Johnny', 'Nummer': '021-233-4555'} ' – AJP

Antwort

1

Also, man kann:

Dict = {} 
def getDetail(): 
    subdict = {} 
    first_name = input("Enter first name") 
    if first_name.lower() != 'quit': 
     last_name = input("Enter last name") 
     nick_name = input("Enter nickname") 
     address = input("Enter address") 
     number = input("Enter phone number") 
     subdict['nick'] = nick_name 
     subdict['firstname'] = first_name 
     subdict['lastname'] = last_name 
     subdict['address'] = address 
     subdict['number'] = number 
     dict[nick_name] = subdict 
+0

Das funktioniert super, danke Joshua! – AJP

+1

Hey, AJP - froh, dass es geholfen hat. (Sie könnten auch offiziell eine Antwort akzeptieren, wenn sie Ihnen zur Verfügung stellt, was Sie brauchen.) –

+0

Tut mir leid, Kumpel, fertig. – AJP

1

sieht kann man einfach so tun, wie Sie normalerweise für jeden Eintrag tun würde.

my_dict[key] = value 

Im Anschluss an dieses Format:

my_dict = Dict 
value = getDetail() 
key = "Up to you" 
my_dict[key] = value 
1

Alternativ geschrieben, einfach und schmutzig:

MyDict = {} 
def GetDetail():  
    first_name = raw_input("Enter first name: ") 
    if first_name.lower() == 'quit': 
     return None 

    else: 
     last_name = raw_input("Enter last name: ") 
     nick_name = raw_input("Enter nickname: ") 
     address = raw_input("Enter address: ") 
     number = raw_input("Enter phone number: ")   

     return { 
      'nick':nick_name, 
      'firstname':first_name, 
      'lastname':last_name, 
      'address':address, 
      'number':number 
     } 


MyDict['Johnny'] = GetDetail() 
print MyDict 

Probe Eingang und Ausgang:

Geben Sie Name: Higazi

Spitznamen eingeben: tameritoke

Adresse eingeben: MyHomeStreet

Telefonnummer eingeben: 000-1999

{ 'Johnny': { 'nick': ' tameritoke ',' Adresse ':' MyHomeStreet ',' Nummer ':' 000-1999 ',' Vorname ':' Tamer ',' Nachname ':' Higazi '}}