理解列表和输出<generator object.<locals><genexpr>at 0x000002C392688C78>

2024-09-26 22:53:42 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个简单的问题,但我通常不擅长理解列表。你知道吗

我在一个dict里面有几个dict,像这样:

main_dict = {
 'a': { 
    'a1':[1,2,3,...], 
    'a2':[2,4,6,...] 
    }
 'b': {
    'b1':[0,2,4,...],
    'b2':[1,3,5,...] 
    }
 }

除了那些字典很大。你知道吗

我想把它添加到日志中(我使用的是logger),但我不想要所有的数据,因为这会让日志在短时间内变得巨大,而且很难读取。所以我尝试这样做是为了只存储每个子目录的前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]]

那我还缺什么?你知道吗


Tags: 数据inselfa2列表for字典main
1条回答
网友
1楼 · 发布于 2024-09-26 22:53:42

你错过了方括号:

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()]))

方括号表示列表理解,圆括号表示生成器表达式。你知道吗

相关问题 更多 >

    热门问题