7.5-7.6 列表生成式和生成器以及区别

简介: 一、列表生成式是 python 受欢迎的语法之一通过一句简洁的语法就可以对一组元素进行过滤还可以对得到的元素进行转换处理。li = [x + x for x in range(1, 101) if x % 2 == 0]print(li)def funa(x):...

一、列表生成式是 python 受欢迎的语法之一

通过一句简洁的语法就可以对一组元素进行过滤

还可以对得到的元素进行转换处理。

li = [x + x for x in range(1, 101) if x % 2 == 0]
print(li)

def funa(x):
    a=[]
    for x in range(1, 101):
        if x % 2 == 0:
            a.append(x+x)
    return a
print(funa(1))


二、列表生成器

1、最简单的办法,把原来的生成式的 [] 换成 () 就 ok 了

lt=(x*x for x in range(1,11) if x%2==0)
print(list(lt))
print(type(lt))
for i in lt:
    print(i)


2、函数中定义列表生成器

def fib(n):
    sum=0
    i=0
    while(i<n):
        sum=sum+i
        i+=1
        yield (sum)
print(type(fib(10)))
for x in fib(10):
    print(x)
print(type(fib(10)))


生成器和生成式的区别:

1、列表生成式,一次性生成所有的数据,然后保存在内存中,适合小量的数据

2、生成器,返回一个可以迭代的对象,及 'generator' 对象,必须通过循环才可以一一取出所以的结果

3、可迭代对象,可以通过循环调用出来的,就是可迭代的对象 [] () {} 生成式 生成器

4、迭代器  生成器,必须通过 next() 调用的,被 next() 函数调用并不断返回下一个值得对象称为迭代器


目录
打赏
0
0
0
0
6
分享
相关文章
联合迭代器与生成器,enumerate() 内置函数真香!
联合迭代器与生成器,enumerate() 内置函数真香!
61 1
|
10月前
|
2649. 嵌套数组生成器
2649. 嵌套数组生成器
49 0
python函数递归和生成器
python函数递归和生成器
|
10月前
使用推导式和生成器创建数组
使用推导式和生成器可以便捷创建数组。例如,`[n^2 for n in 1:10]` 生成一个包含平方数的向量,而 `[n*m for n in 1:10, m in 1:10]` 创建一个乘积矩阵。无括号形式如 `n^2 for n in 1:5` 产生生成器,需要 `collect` 转换为数组。另外,表达式 `sum(1/n^2 for n=1:1000)` 求和而不占用大量内存。
Python编程中的迭代器与生成器
【2月更文挑战第7天】在Python编程中,迭代器和生成器是两个重要的概念,它们提供了一种高效的方法来处理数据集合。本文将深入探讨迭代器和生成器的定义、用法以及在实际项目中的应用,帮助读者更好地理解和运用这两个功能强大的工具。
迭代器和生成器
在JavaScript中,迭代器(`Iterator`)是一个对象,用于在可迭代的数据结构中遍历和访问每个元素,而不必暴露该数据结构的内部结构。
生成器和迭代器
生成器和迭代器
68 0
一文彻底搞懂迭代器与生成器函数
参考mdn上解释,迭代器是一个对象,每次调用next方法返回一个{done: false, value: ''},每次调用next返回当前值,直至最后一次调用时返回 {value:undefined,done: true}时结束,无论后面调用next方法都只会返回{value: undefined,done:true}
176 0
一文彻底搞懂迭代器与生成器函数
迭代器、生成器
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来了解JavaScript中的迭代器、生成器
112 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等