我主要使用lambda函数,但有时使用似乎提供相同行为的嵌套函数.
这里有一些简单的例子,如果在另一个函数中找到它们,它们在功能上做同样的事情:
Lambda函数
>>> a = lambda x : 1 + x
>>> a(5)
6
Run Code Online (Sandbox Code Playgroud)
嵌套功能
>>> def b(x): return 1 + x
>>> b(5)
6
Run Code Online (Sandbox Code Playgroud)
使用一个优于另一个是否有优势?(性能?可读性?限制?一致性?等)
它甚至重要吗?如果不这样做那就违反了Pythonic原则:
给定一个结构化的numpy数组,我想按名称删除某些列而不复制数组.我知道我可以这样做:
names = list(a.dtype.names)
if name_to_remove in names:
names.remove(name_to_remove)
a = a[names]
Run Code Online (Sandbox Code Playgroud)
但是这会创建一个我想避免的数组的临时副本,因为我正在处理的数组可能非常大.
有没有办法做到这一点?