2024-09-24 20:37:14 发布
网友
我在一个列表中存储了大量的算术表达式。例如
exp_list = [exp1, exp2, ...,exp10000]
我还有一些需要计算的表达式的索引。你知道吗
inds = [ind1,ind2,...,ind10] exp_selected = [exp_list[i] for i in inds ]
有没有办法避免计算exp\u列表中的所有表达式?你知道吗
假设您决定将表达式存储为lambda(以避免立即对其求值),那么您可以使用一个简单的列表有选择地对其求值:
exp_list = [lambda: 1+2, lambda: 3+4, lambda: 5+6, lambda: 7+8] inds = [1, 3] print [exp() for i, exp in enumerate(exp_list) if i in inds]
产生:
[7, 15]
如果这些表达式共享某种模式,并且可以“mid air”创建,那么最好使用generator,而不是仅仅创建列表。特别是如果你不需要记住结果,只需要检查其中任何(或全部)结果是真/假。你知道吗
假设您决定将表达式存储为lambda(以避免立即对其求值),那么您可以使用一个简单的列表有选择地对其求值:
产生:
如果这些表达式共享某种模式,并且可以“mid air”创建,那么最好使用generator,而不是仅仅创建列表。特别是如果你不需要记住结果,只需要检查其中任何(或全部)结果是真/假。你知道吗
相关问题 更多 >
编程相关推荐