2012-04-15 14 views
1

Ich möchte ein Python-Skript schreiben, das mehrere Wörterbücher auf einmal erstellt, dann die Wörterbücher ausdruckt, aber ich weiß nicht, wie man eine Zeichenfolge in eine Variable umwandelt.Python: Verwenden Sie eine Zeichenfolge als Variable?

number = 0 

while (number < 10): 
    number = number + 1 
    dictionarynumber = ("D"+str(number)) # creates the dictionarys name(D1,D2,D3,D4,D5,D6,D7,D8,D9,D10) 
    var(dictionarynumber) = {"Fruit":"Apple","Book":"Oliver Twist","Building":"White House"} #Of course var() doesn't work but I placed it here to get my point across 
    print(dictionarynumber) 

Nach Antworten:

mochte ich die Idee, über Wörterbücher und die nicht benötigten "D" macht Sinn herausnehmen. Was denkst du darüber?

dict = {} 
n = 0 

while (n < 10): 
    n = n + 1 
    d = n 
    d = {"Key":"Information"} 
    dict[n] = d 

print(dict) 


# Output = 
#   {1: {'Key': 'Information'}, 
#   2: {'Key': 'Information'}, 
#   3: {'Key': 'Information'}, 
#   4: {'Key': 'Information'}, 
#   5: {'Key': 'Information'}, 
#   6: {'Key': 'Information'}, 
#   7: {'Key': 'Information'}, 
#   8: {'Key': 'Information'}, 
#   9: {'Key': 'Information'}, 
#   10: {'Key': 'Information'}} 
+5

Verwenden Sie eine Liste (lassen Sie das "D" im Indexer aus) oder ein anderes Wörterbuch. Du wirst dir später selbst danken. –

+0

Oder verwenden Sie ein Dictionary-of-Dictionaries - ein berechneter Schlüssel ist immer noch besser als ein Computername - wenn Sie in der Lage sein möchten, sie nicht nur mit sequenziellen Zahlen willkürlich zu benennen. – agf

+1

Ihre 'Nummer' Schleife sollte stattdessen sein:' für die Nummer im Bereich (1, 11): ' –

Antwort

4

Wenn Sie jedem Wörterbuch einen Namen geben möchten, legen Sie sie in ein Wörterbuch ein.

dicts = {} 
# dict_list = [] 
for i in xrange(10): 
    dictionary_key = ('d{0}'.format(i)) 
    dict_item = {"Fruit":"Apple","Book":"Oliver Twist","Building":"White House"} 
    dicts[dictionary_key] = dict_item 
    # dict_list.append(dict_item) 

Wenn Sie nicht auf einen Namen für Ihre Wörterbücher verzichten möchten, legen Sie sie in eine Liste.

+0

Ein leeres Wörterbuch, ich wusste nicht, dass Sie das tun könnten. Scheint wie eine gute Idee. – RandomPhobia

+0

+1 für das Öffnen und Schließen von Sätzen –

0

Sie scheinen zu versuchen, einen gemischten Datentyp zu erstellen, aber ich bin unklar, was für eine Struktur Sie wollen, also gebe ich Ihnen 2 Antworten und hoffe, dass einer richtig ist.

1. Wenn Sie eine Reihe von Wörterbüchern zu erstellen versuchen und drucken Sie würde es so machen:

diclist = [{"Fruit":"Apple"},{"Book":"Oliver Twist"},{"Building":"White House"}] 
print(diclist[1]) 

2., gehen durch das Beispiel, das Sie gegeben haben Sie vielleicht dem Ziel, ein Wörterbuch zu erstellen von Listen. Zum Beispiel

listDic = {'Fruit':['Apples', 'Bannanas', 'Durian'], 'Book':['Oliver Twist','Flashman', 'Catch 22']} 
print (listDic) 

und man kann es wie folgt zugreifen:

print(listDic['Fruit']) 

in

führen würde [ 'Äpfel', 'Bannanas', 'Durian']

und diese print (listDic ['Fruit'] [1]) würde res ult in

Bannanas

Wenn ich die Antwort verpasst man wollte oder Sie wollen mehr Details einfach einen Kommentar fallen.

Verwandte Themen