正如标题所暗示的那样;我不确定为什么这个词典列表中的词典是空的。我在将它们附加到列表之前打印出字典,它们都有4个键/值。
请忽略代码的“烦恼” - 我总是经历一个基本写出来然后完善的过程!
代码:
totalFirst <- 0
prompt <- "What were your second year module results?(space separated)"
secondYearMark <- as.integer(strsplit(readline(prompt), " ")[[1]])
if (secondYearMark >= 70) totalFirst <- totalFirst + 1
答案 0 :(得分:2)
我认为你的意思是:
print len(self.data_dict)
self.master_list.append(self.data_dict)
print self.data_dict
self.data_dict.clear()
dict
为空,因为你清除它。一切都是Python的参考。
>>> d = {k:v for k,v in zip(range(5),'abcde')}
>>> id(d)
140199719344392
>>> some_list = []
>>> some_list.append(d)
>>> some_list
[{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}]
>>> id(some_list[0])
140199719344392
>>> d.clear()
>>> some_list
[{}]
>>>
如果要附加副本,则需要明确地复制它。如果浅拷贝可以,那么只需使用your_dict.copy()
:
>>> d = {k:v for k,v in zip(range(5),'abcde')}
>>> d
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}
>>> id(d)
140199686153480
>>> some_list = []
>>> some_list.append(d.copy())
>>> id(some_list[0])
140199719344392
>>> d.clear()
>>> some_list
[{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}]
>>>