我有一个与字符串关联的数组(相同长度)的字典。我的目标是用相同的键创建一个新的字典,但切割数组,只保留我需要的元素。我写了一个函数来做到这一点,但问题是它返回的字典与每个键相关的数组(正确的切割长度)相同,而我控制的打印命令显示正确的关联。这里的功能:python:dictionary和numpy.array问题
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
表示关于每一个键同一个数组的字典。
请修复缩进。 – zipa
您能给出一个函数调用的例子,它有一个意想不到的结果,并且结果是您期望的吗? – GLR
https://pastebin.com/GSncW5DE 我粘贴终端输出在这里,因为字典有超过300个元素和阵列很长。正如你可以看到第一个打印是'print dic.keys()[i] print dic_extr [dic.keys()[i]]' 而最后一个是print dic_extr'这是完全不同的,我只是预计整个首先打印在一起的新词典 – tidus