【发布时间】:2015-06-25 08:24:39
【问题描述】:
想象一下下面这段代码,它从当前目录的文件中生成文件大小列表:
_sizes = []
for _base, _dirs, _files in os.walk('.'):
for _file in _files:
_size = getsize(join(_base, _file))
_sizes.append(_size)
我想知道我是否可以从这个-s.th 创建一个嵌套生成器。喜欢:
_sizes = [getsize(join(_base, _file))
for _file in _files
for [_base, _dirs, _files in os.walk('.')]]
这当然在语法上是不正确的,因为[_base, _dirs, _files in os.walk('.')] 不是正确的生成器语法。我现在需要的是一种在引用另一个子元素 (_base) 的同时迭代列表 (_files) 中的子元素的方法(我在标题中称之为交叉引用)。
我现在想知道我是否只是看不到明显的东西,或者这种方法是否普遍无效。
【问题讨论】: