这可能是一个简单的问题,但是我通常对理解表不满意。
我在这样的字典中有一些字典:
main_dict = {
'a': {
'a1':[1,2,3,...],
'a2':[2,4,6,...]
}
'b': {
'b1':[0,2,4,...],
'b2':[1,3,5,...]
}
}
除了那些命令非常重要。
我想要的是将其添加到日志中(我正在使用记录器),但是我不想要所有数据,因为那样会使日志立即变得庞大,并且难以读取。因此,我尝试这样做是为了仅存储每个子字典的前10个条目:
self.logger.debug('Recieved: {}'.format(self.main_dict[x][i][:10] for x in self.main_dict.keys() for i in self.main_dict[x].keys()))
但是返回是一个对象:
'generator object.locals.genexpr at 0x000002C392688C78'
所以我对此进行了单独的测试:
main_dict = {
'A':{
'a1': [1,2,3],
'a2': [4,5,6]
},
'B': {
'b1': [0,2,4],
'b2': [1,3,5]
}
}
print([main_dict[x][i][:2] for x in main_dict.keys() for i in main_dict[x].keys()])
它实际上打印:
[[1、2],[4、5],[0、2],[1、3]]
那我想念什么?
答案 0 :(得分:1)
您错过了方括号:
self.logger.debug('Recieved: {}'.format([self.main_dict[x][i][:10] for x in self.main_dict.keys() for i in self.main_dict[x].keys()]))
方括号表示列表理解,括号表示生成器表达式。