Python映射是否有更简单的构造(无,fcn())?
PythonPython映射是否有更简单的构造(无,fcn())?,python,map,equivalent,Python,Map,Equivalent,Pythonmap()的文档部分说明: 如果函数为None,则假定标识函数 因此,如果我有一些类似这样的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 eli
map()
的文档部分说明:
如果函数为None
,则假定标识函数
因此,如果我有一些类似这样的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())
有没有更简单的方法来写?另外,我怀疑
反向(排序(tbl.iterkeys())
也可以简化。您需要做的就是-
list(fcn())
如果需要迭代器,请使用-
iter(fcn())
你需要做的就是-
list(fcn())
如果需要迭代器,请使用-
iter(fcn())
视情况而定。什么是
fcn()
?为什么returnlist(fcn())
do?@StoryTeller我已经添加了fcn()
sorted(tbl.iterkeys(),reverse=True)
@chepner iterkeys()还没有排序出来呢?假设tbl
是一本字典,那就不算了。什么是fcn()
?为什么returnlist(fcn())
do?@StoryTeller我添加了fcn()
sorted(tbl.iterkeys(),reverse=True)
@chepner-The-iterkeys()还没有排序出来呢?假设tbl
是一本字典,不。在这种情况下,我认为iter
会是一个不可操作的,对吗?因为生成器已经是迭代器了?他已经更新了他的问题。我会留着它,以防将来它对任何人都有帮助。在这种情况下,我认为iter
将是不可行的,对吗?因为生成器已经是迭代器了?他已经更新了他的问题。我会留下它,以防将来对任何人都有帮助。