我目前正在使用本指南学习python(如果你想要更多上下文)http://www.diveintopython3.net/comprehensions.html#dictionarycomprehension
>>> import os, glob, humansize
>>> metadata_dict = {f:os.stat(f) for f in glob.glob('*')} ①
>>> humansize_dict = {os.path.splitext(f)[0]:humansize.approximate_size(meta.st_size) \
... for f, meta in metadata_dict.items() if meta.st_size > 6000} ②
>>> list(humansize_dict.keys()) ③
['romantest9', 'romantest8', 'romantest7', 'romantest6', 'romantest10', 'pluraltest6']
>>> humansize_dict['romantest9'] ④
'6.5 KiB'
为什么它是humanize.approximate_size(meta.st_size)'对于f,meta'在哪里有元变量?来自哪里?
答案 0 :(得分:3)
这与os.stat
无关。
你似乎已经跳过了那一章的主题,理解 - 这是一个词典理解。正如之前对列表推导的讨论一样,dict comp为它迭代的dict中的每个项创建变量。这段代码的脚注中对此进行了解释。