01
引言
大家好,我是AI算法之道!
Python是我最喜欢的编程语言之一,它向来以其简单性、多功能性和可读性而闻名。
在Python编程中有各种各样的小技巧,在本文中,我们将深入探讨Python中关于迭代和循环的八个进阶小技巧,希望可以帮助到大家!
02
enumerate() & zip()
通过 enumerate() 函数,我们可以在遍历列表(或元组)时同时生成索引和值。无论出于何种原因,如果我们需要索引,这个函数都非常有用。
zip()函数允许我们同时遍历 2 个或多个迭代对象(如列表/元组)。我们只需将迭代对象传递给 zip() 函数即可。
03
关键字break
break 关键字也适用于 while 循环。在下面的示例中,当 num 达到 3 时,我们就中断,从而跳出 while 循环。
04
关键字continue
执行 continue 关键字时,仅跳过当前迭代,并立即进入下一次迭代。continue 关键字不会停止整个循环。
05
使用itertools.product
下面是一个普通的嵌套 for 循环:
如果我们不想编写这么多嵌套 for 循环,可以使用 itertools.product 来帮助我们。简而言之,itertools.product 可以模拟多层嵌套 for 循环,而我们无需编写多层嵌套 for 循环语句。
此外,itertools 是 Python 标准库的一部分,这意味着我们不需要安装任何东西。我们只需导入即可。
06
使用itertools.pairwise
itertools.pairwise 函数会生成列表中每一对相邻的元素。
07
生成器函数
在这里,如果我们像使用普通函数那样调用 test(),并不会得到苹果、橘子和梨,而是打印出某个生成器对象。这是因为生成器函数会返回一个生成器对象。
生成器对象就是用来遍历的。最简单的方法是:1)使用 for 循环或 2)用 list() 封装我们的生成器对象
08
为什么要使用生成器函数
将所有 dostuff(项目)存储在输出列表中(存储在内存中)
需要等待 100 万次计算全部完成后再返回
这可能会导致内存外错误和效率低下
我们不会在内存中存储所有 100 万个元素
我们不需要等 100 万次计算全部完成后才返回结果
因此,当我们想要最大限度地提高效率并避免内存不足错误时,我经常使用生成器来代替普通函数。
09
iter() 和 next()
下面是一个简单的列表,我们使用 for 循环对其进行遍历。
在内部,for 循环实际上使用了一个迭代器对象。要获取列表的迭代器对象,我们使用 iter() 函数。
10
总结
本文重点介绍了python中关于迭代的八种进阶技巧,希望这些小技巧可以帮助到大家,提升大家的工作效率!
您学废了吗?
点击上方小卡片关注我
添加个人微信,进专属粉丝群!