这里是在字典中的响应,该字典具有存储在字典中的表单值。我的输出是用单独的字典生成的,我不需要单独编写。我只想要一个字典中的所有元素
resp = {}
b = []
for i in range(1, 10):
resp_i = form.getvalue('opt_%d' %i, '0')
resp[i] = int(resp_i)
arg = {i : resp[i]}
b.append(arg)
#print len(b)
for each in b:
print each
实际输出:{1:1} {2:1} {3:3} {4:1} {5:3} {6:0} {7:0} {8:0} {9:0 }
预期输出:{1:1,2:1,3:3,4:1,5:3,6:0,7:0,8:0,9:0}
答案 0 :(得分:2)
问题在于:
b = []
for ...
arg = {i: resp[i]} # creates a new dict
b.append(arg) # adds the dict to the list
您可能正在寻找的是:
b = {}
for ...
b.update(arg)
当然,这仍然不是最干净的方法。毕竟,为什么要创建所有临时词典?
b = {}
for ...
b[i] = resp[i]
可以工作,或者你甚至可以将它全部纳入词典理解中。
答案 1 :(得分:0)
def form_getvalue(i):
return ('0', '1', '1', '3', '1', '3', '0', '0', '0', '0')[i]
resp = {}
for i in range(1, 10):
resp[i] = int(form_getvalue(i))
print 'resp=%s' % (resp,)
以上的输出是:
resp={1: 1, 2: 1, 3: 3, 4: 1, 5: 3, 6: 0, 7: 0, 8: 0, 9: 0}