关于python:你真的会写for循环吗来看看这些常见的for循环优化方式

55次阅读

共计 1236 个字符,预计需要花费 4 分钟才能阅读完成。

咱们都常常应用一些循环耗时计算的操作,特地是 for 循环,它是一种反复计算的操作,如果解决不好,耗时就比拟大,如果解决书写切当将大大提高效率,上面总结几条 for 循环的常见优化形式。

首先,咱们初始化一个汇合 list,如下:

List<String> list = new ArrayList<String>();

办法一:最惯例的不加思考的写法

for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));
}

长处:较常见,易于了解
毛病:每次都要计算​​list.size()​​
办法二:数组长度提取进去

int m = list.size();
for (int i = 0; i < m; i++) {System.out.println(list.get(i));
}

长处:不用每次都计算
毛病:
m 的作用域不够小,违反了最小作用域准则
不能在 for 循环中操作 list 的大小,比方除去或新加一个元素
办法三:数组长度提取进去

for (int i = 0, n = list.size(); i < n; i++) {System.out.println(list.get(i));
}

长处:不用每次都计算,变量的作用域遵循最小范畴准则
毛病:
m 的作用域不够小,违反了最小作用域准则
不能在 for 循环中操作 list 的大小,比方除去或新加一个元素
办法四:采纳倒序的写法

for (int i = list.size() - 1; i >= 0; i--) {System.out.println(list.get(i));
}

长处:不用每次都计算,变量的作用域遵循最小范畴准则
毛病:1、后果的程序会反 2、看起来不习惯,不易读懂
实用场合:与显示后果程序无关的中央:比方保留之前数据的校验
办法五:Iterator 遍历

for (Iterator<String> it = list.iterator(); it.hasNext();) {System.out.println(it.next());
}

长处:简洁
办法六:jdk1.5 后的写法

for (Object o : list) {System.out.println(o);
}

长处:简洁联合泛型应用更简洁
毛病:jdk1.4 向下不兼容
办法七:循环嵌套外小内大准则

for (int i = 0; i < 10; i++) {for (int j = 0; j < 10000; j++) {}}

起因

办法八:循环嵌套提取不须要循环的逻辑

// 前:int a = 10, b = 11;
  for (int i = 0; i < 10; i++) {i = i * a * b;} 
 
 
// 后:int c = a * b;
 for (int i = 0; i < 10; i++) {i = i * c;}

办法九:异样解决写在循环里面
反例

for (int i = 0; i < 10; i++) {try {} catch (Exception e) {}}

正例

try {for (int i = 0; i < 10; i++) {}} catch (Exception e) { }

以上就是本次分享的全部内容,当初想要学习编程的小伙伴欢送关注 Python 技术大本营,获取更多技能与教程。

正文完
 0