Python中替代for循环的几种方法

Python中替代for循环的几种方法

1.for循环

之前博客有发过for循环的本质,但不究其本质,for循环我们可以总结为是对序列进行遍历操作,生成另一个序列的过程。

for i in iterable:
	do something

可以说写for循环结构已经成为当我们面对相关问题时的习惯,这也是在代码中十分常见的结构,但理性地去思考,for循环相比于扁平结构是否还有一些不足?

1.更多的代码行数
2.较差的代码可读性
3.运行性能较差
2.可以替代for循环的方法

(1)列表生成器

def f(x):
    return x**2

list1=[f(x) for x in range(1,11)]
list2=[x**2 for x in range(1,11)]
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

(2)生成器

节省内存,用的时候拿出

a=(i for i in range(10)) #生成器对象
#print(next(a)) 0
for i in a:
    print(i) #0 1 2 3 4 5 6 7 8 9
def foo():
    print('First')
    yield 1
    print('Second')
    yield 2
    print('Third')
    yield 3

print(foo)	#<function foo at 0x00000208561BA940>
print(foo())	# <generator object foo at 0x00000208561BFC10>
a = foo()
for i in a:
    print(i) # First 1 Second 2 Third 3

(3)内置函数

filter(func,*iterable)
#将可迭代对象值传到函数执行,返回符合条件的值生成迭代器(过滤)
map(func,*iterable)
#将可迭代对象每一个值传到函数执行,并且返回生成迭代器(处理)
reduce(func,sequence)
#要引入 from functools import reduce
#将包含两个参数的函数累计应用于序列的项,从左到右,直到序列缩减为一个值(结果为一个值)
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值