Python Lambda函数更好还是迭代更好?

Python Lambda函数更好还是迭代更好?,python,list,lambda,Python,List,Lambda,迭代更好还是lambda函数在时间处理或内存使用等方面更好 例如: x = [10, 20, 30] for y in x: if y>10 or y<20: print y 这是更好的还是lambda函数? 我想要关于时间处理、内存使用或任何其他比较的答案。对于您的情况,经典循环显然更好,因为您不想创建新的列表或生成器 不创建这样的对象会提高内存效率,不为每个元素调用函数会提高性能。对于您的情况,经典循环显然更好,因为您不想创建新的列表或生成器 不创建这

迭代更好还是lambda函数在时间处理或内存使用等方面更好

例如:

x = [10, 20, 30]

for y in x:
    if y>10 or y<20:
        print y
这是更好的还是lambda函数?
我想要关于时间处理、内存使用或任何其他比较的答案。

对于您的情况,经典循环显然更好,因为您不想创建新的列表或生成器


不创建这样的对象会提高内存效率,不为每个元素调用函数会提高性能。

对于您的情况,经典循环显然更好,因为您不想创建新的列表或生成器


不创建这样的对象会提高内存效率,不为每个元素调用函数会提高性能。

迭代器和lambda是两个完全不同的东西。lambda是一个简单的内联函数,迭代器是一个返回连续对象的对象。您的示例有两个主要问题:您正在测试x而不是y,x中的所有值都将通过y>10或y迭代器,而lambda是两个完全不同的东西。lambda是一个简单的内联函数,迭代器是一个返回连续对象的对象。您的示例有两个主要问题:您正在测试x而不是y,并且x中的所有值都将通过y>10或y 我发现列表理解表示法比函数表示法更容易阅读,尤其是当要映射的表达式的复杂性增加时。此外,列表理解的执行速度比使用map和lambda的解决方案快得多。这是因为调用lambda函数会创建一个新的堆栈帧,而对列表中的表达式求值时不会创建新的堆栈帧。>>

换句话说,无论您是否可以在lambda和循环/理解/生成器之间进行选择,请使用后者。我想写你的例子的最具python风格的方式应该是

 print [y for y in x if y < 20]
我发现列表理解表示法比函数表示法更容易阅读,尤其是当要映射的表达式的复杂性增加时。此外,列表理解的执行速度比使用map和lambda的解决方案快得多。这是因为调用lambda函数会创建一个新的堆栈帧,而对列表中的表达式求值时不会创建新的堆栈帧。>>

换句话说,无论您是否可以在lambda和循环/理解/生成器之间进行选择,请使用后者。我想写你的例子的最具python风格的方式应该是

 print [y for y in x if y < 20]

为什么要否决投票?这太不可思议了。为什么要否决投票?这太不可思议了。