zoukankan      html  css  js  c++  java
  • (一)Python入门-4控制语句:09循环代码优化技巧(重要)-zip()并行迭代

    一:循环代码优化

      虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:

        1. 尽量减少循环内部不必要的计算
        2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
        3. 局部变量查询较快,尽量使用局部变量

      其他优化手段:

        1. 连接多个字符串,使用 join()而不使用+

        2. 列表进行元素插入和删除,尽量在列表尾部操作

    【操作】循环代码优化测试

     1 import time
     2 start = time.time()
     3 for i in range(1000):
     4     result = []
     5     for j in range(10000):
     6         result.append(i*1000+j*100)
     7 end = time.time()
     8 print('耗时:{0}'.format((end-start)))
     9 
    10 start2 = time.time()
    11 for i in range(1000):
    12     result = []
    13     m = i * 1000  
    14     for j in range(10000):
    15         result.append(m+j*100)
    16 end2 = time.time()
    17 print('耗时:{0}'.format((end2-start2)))

    二:使用zip()并行迭代

      我们可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。

    【操作】测试 zip()并行迭代

     1 #定义元组,遍历一个列表
     2 for i in [1,2,3]:
     3     print(i)
     4 #定义三个列表,遍历多个列表
     5 names = ('zy','ze','zs','zw','zl')
     6 ages = (18,19,20)
     7 jobs = ('程序员','测试','UI','产品经理')
     8 
     9 for name,age,job in zip(names,ages,jobs):   #使用zip()函数遍历
    10     print('{0}--{1}--{2}'.format(name,age,job))
    11 
    12 for i in range(3):   #普通循环遍历
    13     print('{0}-{1}-{2}'.format(names[i],ages[i],jobs[i]))
  • 相关阅读:
    CentOS7 64位下MySQL5.7安装与配置(YUM)
    在windows 7中vagrant up 无反应,没任何信息输出
    vagrant在windows下的安装和配置
    html中嵌入flvplayer.swf播放器,播放视频
    FileItem 出现部分中文乱码解决办法
    华为P6-C00电信版,刷机总是失败? FAIL
    MyEclipse发布按钮无效的办法
    Ubuntu 下建立WiFi热点的方法
    Android系统源码学习步骤
    android源代码在线阅读
  • 原文地址:https://www.cnblogs.com/jack-zh/p/10831051.html
Copyright © 2011-2022 走看看