Python 填充嵌套字典
在填充嵌套字典和保留以前填充的键时遇到问题。请参见此示例:Python 填充嵌套字典,python,pandas,dictionary,Python,Pandas,Dictionary,在填充嵌套字典和保留以前填充的键时遇到问题。请参见此示例: 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})} 我的意图是fu
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[key],是指fulldict[key][i]=pd.DataFrame{'x1':x1',y1':y1}。在外部for循环中需要fulldict[key]={}。