【发布时间】:2018-02-08 00:08:55
【问题描述】:
我有一个字典,其中包含与字符串关联的数组(相同长度)。我的目标是创建一个具有相同键但切割数组的新字典,只保留我需要的元素。我写了一个函数来做到这一点,但问题是它返回一个字典,其中每个键都具有相同的数组(正确的剪切长度),而我用来控制的打印命令显示了正确的关联。函数如下:
def extract_years(dic,initial_year,final_year):
dic_extr = {}
l = numpy.size(dic[dic.keys()[0]])
if final_year != 2013 :
a = numpy.zeros((final_year - initial_year)*251)
elif final_year == 2013 :
a = numpy.zeros(l - (initial_year-1998)*251)
for i in range(0,len(dic)):
#print i
for k in range (0,numpy.size(a)):
a[k] = dic[dic.keys()[i]][(initial_year-1998)*251 + k]
#print k
dic_extr[dic.keys()[i]] = a
print dic.keys()[i]
print dic_extr[dic.keys()[i]]
print dic_extr.keys()
print dic_extr
return dic_extr
正如我所说,print dic_extr[dic.keys()[i]] 显示了正确的结果,而最终的 print dic_extr 显示了一个字典,其中每个键都关联了相同的数组。
【问题讨论】:
-
请修正缩进。
-
你能否举一个函数调用的例子,它有一个意想不到的结果,并且结果是你所期望的?
-
pastebin.com/GSncW5DE 我在这里粘贴了终端输出,因为字典有 300 多个元素并且数组很长。如您所见,第一个打印件是
print dic.keys()[i] print dic_extr[dic.keys()[i]],而最后一个打印件是print dic_extr,这是完全不同的,我只是希望整个第一个打印件都在新字典中
标签: python arrays python-2.7 numpy dictionary