填充嵌套字典
问题描述:
无法填充嵌套字典并保留以前填充的键。看看这个例子:填充嵌套字典
fulldict={}
keys=['key1', 'key2', 'key3']
for key in keys:
for i in xrange(3):
x1 = np.random.randn(10)
y1 = np.random.randn(10)
fulldict[key] = {i:pd.DataFrame({'x1':x1, 'y1': y1})}
我的意图是,fulldict['key1']
应该包含3个词典与键0,1,2。但只有最后一个键(2)被存储。
任何建议表示赞赏
答
你每次都重新分配fulldict[key]
,所以初始化fulldict[key] = {}
和使用i
作为重点:
for key in keys:
fulldict[key] = {}
for i in xrange(3):
x1 = np.random.randn(10)
y1 = np.random.randn(10)
fulldict[key][i] = pd.DataFrame({'x1':x1, 'y1': y1})
答
或者你可以求助于字典修真内字典(节省几个查找):
import numpy as np
fulldict={}
keys=['key1', 'key2', 'key3']
draw = np.random.randn
for key in keys:
fulldict[key] = {i: pd.DataFrame({'x1': draw(10), 'y1': draw(10)})
for i in xrange(3)}
您重新分配'fulldict [关键]'每次,你的意思'fulldict [关键] [i] = PD .DataFrame({'x1':x1,'y1':y1})'。你需要在外部for循环中使用'fulldict [key] = {}'。 – AChampion