Python map()
的文档部分声明:
如果函数为
None
,则假定为identity函数;
因此,如果我有这样的Python代码:
def yearsback(tbl, yb):
def fcn():
y = None
i = 0
for (year, prefix, suffix) in reversed(sorted(tbl.iterkeys())):
if y == None:
y = year
elif y > year:
i, y = 1 + i, year
if i >= yb:
return
yield (year, prefix, suffix)
return map(None, fcn())
有没有更简单的方法来写这个?此外,我怀疑reversed(sorted(tbl.iterkeys()))
也可以简化。
答案 0 :(得分:5)
您需要做的只是 -
list(fcn())
如果你想要一个迭代器,请使用 -
iter(fcn())