序⾔

在开发过程中经常会遇到对可迭代对象进⾏for循环的操作,甚⾄双重编写for循环进⽽找到匹配条件的数据,

某些逻辑上这些操作往往⽆法避免,但可以通过⼀些⽅法使得代码不那么冗余和提升代码效率

循环的情况

1、循环⽐较

双重循环获取对象并进⾏⽐较

>>> a1 = [1, 3, 5, 2, 10]>>> a2 = [5, 6, 1, 8]>>> for i in a1:for j in a2:if i < j:print(i,j)...(1, 5)(1, 6)(1, 8)(3, 5)(3, 6)(3, 8)(5, 6)(5, 8)(2, 5)(2, 6)(2, 8)
复制代码

可以通过itertools包对此种循环进⾏优化,不仅使得代码复杂度降低,也提升了执⾏速度

a1 = [1, 3, 5, 2, 10]a2 = [5, 6, 1, 8]@count_time
def base_func():for i in a1:for j in a2:if i < j:print(i, j)@count_time
def itertools_func():for i in itertools.product(a1, a2):if i[0] < i[1]:print(i)if __name__ == '__main__':base_func()itertools_func()# 8.106231689453125e-06
# 4.053115844726562e-06
复制代码

2、循环展开

将复杂嵌套数据内容展开,可以使⽤推导式进⾏实现

@count_timedef base_func():result = []for a in a1:for j in a:result.append(j)@count_time
def itertools_func():value = [i for value in a1 for i in value]if __name__ == '__main__':print(base_func())print(itertools_func())# 8.106231689453125e-06
# 4.053115844726562e-06
复制代码

3、已知集合⼤⼩

在已知集合⼤致数量进⾏双重for循环处理数据时,应该采⽤外⼩内⼤的原则,把⼤循环写在⾥⾯,⼩循环写在外边

@count_time
def outer_func():for i in range(10):for j in range(10000): if i == j:print(i, j)@count_time
def inner_func():for i in range(10000):for j in range(10):if i == j:print(i, j)# 0.003239154815673828
# 0.004751205444335937

python 双重循环处理相关推荐

  1. python当型循环_对python while循环和双重循环的实例详解

    废话不多说,直接上代码吧! #python中,while语句用于循环执行程序,即在某个条件下,循环执行某段程序,以处理需要重复处理的相同任务. #while是"当型"循环结构. i ...

  2. [转载] Python基础:用Python统计列表中每个单词出现的次数(split 的使用,for双重循环)

    参考链接: Python | 抓取网页并获得最常用单词的程序 如何用Python统计含多个字符串的列表中每个单词出现的次数? 要从多个字符窜中统计次数的话,我们先来看一个简单的例子: 先从一个字符串中 ...

  3. python用双重循环输出菱形_Python 使用双重循环打印图形菱形操作

    如下所示: a = int(input("请输入菱形行数:")) m = a #空格 d = a #倒三角 for i in range(1, a + 1): # 先打印正三角 p ...

  4. python中for循环打印菱形_Python 使用双重循环打印图形菱形操作

    如下所示: a = int(input("请输入菱形行数:")) m = a #空格 d = a #倒三角 for i in range(1, a + 1): # 先打印正三角 p ...

  5. python用while打印菱形_Python 使用双重循环打印图形菱形操作

    如下所示: a = int(input("请输入菱形行数:")) m = a #空格 d = a #倒三角 for i in range(1, a + 1): # 先打印正三角 p ...

  6. python无限循环和遍历循环,python中什么叫遍历

    python循环语句是什么? python 循环语句:while 判断条件(condition):执行语句(statements)--执行语句可以是单个语句或语句块. 判断条件可以是任何表达式,任何非 ...

  7. 为什么双层循环 冒泡排序_冒泡排序的双重循环理解

    主要说一下冒泡排序的一些关键地方的个人理解,比如算法思想,两个循环的作用意义,中间循环变量范围的确定等. 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面 ...

  8. python无限循环条件循环_Python - 条件控制、循环语句 - 第十二天

    Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...

  9. Python编写循环的两个建议 | 鹅厂实战

    作者 | piglei(腾讯高级工程师) 转载自腾讯技术工程知乎专栏 循环是一种常用的程序控制结构.我们常说,机器相比人类的最大优点之一,就是机器可以不眠不休的重复做某件事情,但人却不行.而" ...

最新文章

  1. 笑了,面试官问我知不知道异步编程的Future。
  2. 三层之抽象工厂加反射实例
  3. matlab生成图像路径列表和标签,打乱顺序
  4. web前端——transform变形 旋转角度正负的判断
  5. location.href属于重定向还是转发_servlet2 单元测试、转发、重定向
  6. OpenShift 4 - DevSecOps (1) - 安装 DevOps 环境
  7. BZOJ1419: Red is good
  8. hiprint使用初体验,模板设计经验分享
  9. 中点坐标公式 矩形_2019南充第16题——平面直角坐标系、矩形、K字型相似、运动与最值...
  10. discuz2.0升级后不能自动跳转问题
  11. ubuntu常用软件安装集合:360浏览器、QQ--持续更新
  12. 用户故事与敏捷方法—估算用户故事
  13. 6120:学长的沙包
  14. 拟物化设计与扁平化设计
  15. 汽车控制器自研AUTOSAR开发工具链需要哪些?
  16. mysql oracle minus_Oracle Minus关键字
  17. Android快速开发之appBase——(1).appBase介绍
  18. PHP Imagick发光文字
  19. 安装多个版本号jdk后java -version不改变的问题解决
  20. 全球及中国集成电路(IC)制造行业运行前景与发展规划建议报告2022版

热门文章

  1. php 浏览商品足迹,iwebshop调取浏览足迹方法
  2. 计算机相关名人,探寻计算机发展史上的名人足迹
  3. Google财经香港版上线,香港路演
  4. dd linux u盘不识别,【已解决】U盘在dd后无法识别
  5. bind的原理和bind的实现
  6. [答疑]两个客户A,B,都要求你给找一个性感女郎
  7. IOS开发百度地图API-用点生成路线,导航,气泡响应
  8. CMT2380F32模块开发0-总览
  9. oracle小机系统,【案例分享】Oracle系统参数过小导致数据库宕机
  10. pandas查看属性和数据