Python列表生成式与生成器操作示例,Python3中的列表生成式

而调用的时候也一般不用麻烦的next()的方法,而是用for循环来遍历

可以用

python 生成器可参考

您可能感兴趣的文章:

  • Python生成器(Generator)详解
  • 浅谈Python生成器generator之next和send的运行流程(详解)
  • python生成器generator用法实例分析
  • Python列表推导式与生成器用法分析
  • Python列表生成式与生成器操作示例
  • Python迭代器与生成器用法实例分析
  • Python3中的列表生成式、生成器与迭代器实例详解
  • Python生成器定义与简单用法实例分析
  • 深入讲解Python中的迭代器和生成器
  • python的迭代器与生成器实例详解
  • Python生成器generator用法示例
g=odd()
for i in g:
  print(i)

迭代器 iterator

生成器:就是未循环完的列表,这是为了节约电脑内存,设立的一种一边循环一边计算的机制。

生成器:就是未循环完的列表,这是为了节约电脑内存,设立的一种一边循环一边计算的机制。

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator

可以进行for循环的数据类型包括以下两种:

0
1
4
9
16
25
36
49
64
81

列表生成式

生成器

创建的方法也是很简单,其中一种就是把列表生成式的[]改成()就可以了

list、dict、str等数据类型不是Iterator,但是可以通过 iter() 来创建迭代器
list=[1,2,3,4]
it = iter(list)  # 创建迭代器对象
print (next(it))  # 输出迭代器的下一个元素
  1
print (next(it))
  2

这样就能遍历出所有的生成器中的元素

下面是一个让list中所有字符串变为小写的例子

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)

迭代器

这样就能生成,除此之外,后面还能添加判断条件来筛选

生成器 Generator

另一种生成器的方法:如果函数中包含有yield关键字,则这是一个生成器

比如想要生成类似[1*1,2*2,3*3,…..100*100]的这种list

包含 yield
语句的函数会被特定的编译成生成器。可以吧生成器理解为迭代器。

在调用生成器运行的过程中,每次遇到 yield
时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次执行
next()方法时从当前位置继续运行。

Generator
的工作原理,是在for循环的过程中不断计算出下一个元素,并在适当的条件结束for循环。

对于函数改成的generator来说,遇到return语句或者执行到函数体最后一行语句,就是结束generator的指令,for循环随之结束。

Isinstandce()可以用来判断对象是否为可迭代对象

运行结果:

您可能感兴趣的文章:

  • Python生成器(Generator)详解
  • 浅谈Python生成器generator之next和send的运行流程(详解)
  • python生成器generator用法实例分析
  • Python列表推导式与生成器用法分析
  • Python列表生成式与生成器操作示例
  • Python迭代器与生成器基本用法分析
  • Python迭代器与生成器用法实例分析
  • Python生成器定义与简单用法实例分析
  • 深入讲解Python中的迭代器和生成器
  • python的迭代器与生成器实例详解
  • Python生成器generator用法示例
>>> from collections import Iterable
>>> isinstance([], Iterable)
True
>>> isinstance({}, Iterable)
True
>>> isinstance('abc', Iterable)
True
>>> isinstance((x for x in range(10)), Iterable)
True
>>> isinstance(100, Iterable)
False

希望本文所述对大家Python程序设计有所帮助。

print(a.__next__())
print(a.__next__())
print(a.__next__())
print(a.__next__())
g= (x*x for x in range(10))
for n in g:
 print(n)
def odd():
  print('step 1')
  yield 1
  print('step 2')
  yield(3)
  print('step 3')
  yield(5)

迭代器 iterator 和可迭代对象 iterable 的区别在于:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

比如

a = (x ** 2 for x in range(1, 10))
b = (x * x for x in range(1, 11) if x % 2 == 0)
c = (m + n for m in 'ABC' for n in '123')
d = {'Java': "99", 'C': "99", 'C++': "99"}
L = (k + '=' + v for k, v in d.items())
print(a)
print(b)
print(c)
print(L)
  1. 集合数据类型比如listtupledictstr

  2. 另一种是生成器

而调用的时候也一般不用麻烦的next()的方法,而是用for循环来遍历

  • 迭代器是访问集合元素的一种方式
  • 迭代器有两个方法,生成迭代器 iter(),返回迭代器的下一个项目 next()
  • 迭代器对象从集合的第一个元素开始访问,知道所有元素被访问结束。迭代器只能往前,不能回退。
  • 字符串、列表、元组 都可以用于创建迭代器

比如:

这样就能筛选出仅有偶数的平方

如果一个函数包含了yield
关键字,那么该函数就不再是普通的函数,而是一个生成器 Generatior。

希望本文所述对大家Python程序设计有所帮助。

列表生成式:能够用来创建list的生成式

廖雪峰 python3
教程(带标签完整版):

网站地图xml地图