scalify
如果列表只有一个元素,则可以轻松编写一个从列表返回该元素的函数,即,它试图使其成为标量(因此命名)。
def scalify(l):
return l if len(l) > 1 else l[0]
然后可以在函数中使用它,如下所示:
def foo(*args):
return scalify([a + 1 for a in args])
这可以解决问题,但是我和那些建议您不要这样做的人在一起。由于一个原因,除非您知道至少传入了两个项目,否则它排除了对结果进行迭代的可能性。另外,如果有列表,则在调用该函数时必须将列表解压缩,从而失去其“列表性”,并且您知道可能无法获得列表。在我看来,这些缺点掩盖了您可能会从该技术中看到的任何好处。