level 10
list=Range[10^7];
Scan[If[
#^2>10,Return[#
]]&,list]//AbsoluteTiming
Do[If[list[[i]]^2>10,Return[list[[i]]]],{i,1,Length[list]}]//AbsoluteTiming
这种情况Scan慢很多
list=Range[10^7];
Scan[#^2&,list]//AbsoluteTiming
Do[list[[i]]^2,{i,1,Length[list]}]//AbsoluteTiming
这种情况Scan快一点
如何改进
2023年05月15日 14点05分
1
level 10
第二个对比可以加一个不返回的判断比如If[#^2>10^1000,],当list比较大且所有元素都要参与计算的时候
Scan稍快一点,
当list很大,但只算了几个数就返回结果的,Do要快.
2023年05月16日 00点05分
8