是否有更简单的Python map构造(None,fcn())?

Wil*_*mKF 1 python map equivalent

Python的文档map()部分说明:

如果是Nonefunction,则假定为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())
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来写这个?此外,我怀疑reversed(sorted(tbl.iterkeys()))也可以简化.

pyr*_*ade 5

你需要做的就是 -

list(fcn())
Run Code Online (Sandbox Code Playgroud)

如果你想要一个迭代器,请使用 -

iter(fcn())
Run Code Online (Sandbox Code Playgroud)