I want to write a python script that creates several dictionaries at once then print the dictionaries out but I don't know how to convert a string to a 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)
After Answers:
I liked the idea about dictionaries and taking out the unneeded "D" makes sense. What do you guys think of this?
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'}}
2 Answers 2
If you want to give each dictionary a name, put them in a dictionary.
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)
If you're not hung up on using a name for your dictionaries, put them in a list.
1 Comment
You seem to be trying to create a mixed data type but I'm unclear on what kinda structure you want so I'll give you a 2 answers and hope one is right.
1st, If you are trying to create a bunch of dictionaries and print it you would do it like this:
diclist = [{"Fruit":"Apple"},{"Book":"Oliver Twist"},{"Building":"White House"}]
print(diclist[1])
2nd, going by the example you have given you might be aiming to create a dictionary of lists. For example
listDic = {'Fruit':['Apples', 'Bannanas', 'Durian'], 'Book':['Oliver Twist','Flashman', 'Catch 22']}
print (listDic)
and you can access it like this:
print(listDic['Fruit'])
would result in
['Apples', 'Bannanas', 'Durian']
and this print(listDic['Fruit'][1]) would result in
Bannanas
If I missed the answer you wanted or you want more detail just drop a comment.
numberloop should instead be:for number in range(1, 11):{1: {'a': {'i': 1, 'ii': 2), 'b': 3}, 2: 4, 3: {'knight': 'ni', 'parrot': None}}Just don't try to use a dictionary as a key.