Python Lambda函数更好还是迭代更好?
迭代更好还是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函数? 我想要关于时间处理、内存使用或任何其他比较的答案。对于您的情况,经典循环显然更好,因为您不想创建新的列表或生成器 不创建这样的对象会提高内存效率,不为每个元素调用函数会提高性能。对于您的情况,经典循环显然更好,因为您不想创建新的列表或生成器 不创建这
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]
为什么要否决投票?这太不可思议了。为什么要否决投票?这太不可思议了。