美文网首页
迭代器/生成器

迭代器/生成器

作者: 这是沸羊羊的干爹 | 来源:发表于2018-09-12 14:33 被阅读0次

Python分析建模,日常问题整理(八)


2018.09.10~2018.09.16


  • 1 join
    通过指定字符连接序列中元素后生成的新字符串。只能对字符串作用。
print('-'.join(list(map(str,list(range(0,10)))))) # 短线连接
print('\n'.join(list(map(str,list(range(0,10)))))) # 提行连接
print('\n'.join([' '.join(['%sx%s=%-2s' % (y,x,x*y) 
       for y in range(1,x+1)]) for x in range(1,13)]))  ##13*13乘法表生成代码
  • 2 map
    map(str,list_a)将列表的每个元素转化为字符型
    map(int,list_a)将列表的每个元素转化为数值型

  • 3 eval
    eval()函数用来执行一个字符串表达式,并返回表达式的值。
    print(eval(input)) 生成计算器,并打印计算结果

  • 4 iter
    for i in ...中作用与for的对象,为可迭代、循环的(literable)对象,数据类型可以是: list/tuple/dict/set/str
    可以被next()函数不断返回下一个值的对象称为迭代器:Iterator
    list/dict/str都不能用next函数,需要用iter函数转化后才能成为迭代器。

# 迭代完列表中的数据时返回nothing
iterate_ = iter([1,2,3,4,5,6])
a = 6
while a<10:
    a +=1
    print(next(iterate_,'nothing'))

迭代器只能使用一次,用完了需要重新定义才能开始。

  • 5 yield
    生成器可以实现迭代功能,只能使用一次,实时生成数据(顾名思义:生成器),不会占用内存。
generator_ = (x*x for x in range(5)) #generator_ 的数据类型是generator
for i in generator_ :
    print(i)
def createGenerator():
    for i in range(3):
        yield i*2
mygenerator = createGenerator()
# mygenerator 只能使用一次,迭代完了就不能用了,不过可以通过调用createGenerator再生成一个生成器。
for i in mygenerator:
    print(i)

数据量少的时候或者一般数据分析场景可能不需要用,数据量多需考虑内存或者返回一些值时可能会用到。
generator function产生的generator与普通的function区别:
1)function 每次都是从第一行开始运行,generator从上一次yield开始的地方运行
2)function 调用一次返回一个(一组)值,generator可以多次返回
3)function 可以被无数次重复调用,一个generator实例在yield最后一个值 或者return之后就不能继续调用了

  • 6 lamda

能将复杂的代码用一行搞定

python one online
def function能实现的简单函数lambda也可以实现。

def f(string):
     for char in string:
        if char != 'a' and char != 'A':
            return False
     return True

等价于
f = lambda string:True in [char in 'Aa' for char in string]
应用时:
f(['S','E','C'])
等于
(lambda string: True in [char in 'Aa' for char in string])(['S','E','C'])

  • 7 format
    设定格式

相关文章

  • 2019-03-20

    1 迭代器和生成器 迭代器 获取数据:next (迭代器)、for 循环遍历 ,数据来源:转换、生成器 生成器:...

  • yield and Iterator

    Generator(生成器) 生成器是特殊的迭代器,迭代器不一定是生成器。 生成器与迭代器均是可迭代对象。 目前学...

  • 14. Python之迭代器(iterator)和生成器(gen

    1 什么是迭代器 2 为何要有迭代器 3 如何用迭代器 4 生成器 生成器应用案例

  • 第014篇:三大神器之生成器

    Python的三大神器:装饰器、迭代器、生成器 1、生成器 1.1、什么是生成器 生成器就是迭代器的一种;生成器作...

  • ES6 ES7 语法特性与规范

    生成器函数 说生成器之前先讲迭代器,下面就是迭代器的简单范例,迭代器代表一个流程,迭代器的每次next()调用,会...

  • Python基础-16生成器-迭代器

    16.生成器-迭代器     可循环迭代的对象称为可迭代对象,迭代器和生成器函数是可迭代对象,在Python中提供...

  • 迭代器

    可迭代对象(Iterable): for迭代器(Iterator): for + next生成器属于迭代器。 验...

  • Python :生成器、迭代器、装饰器、递归函数与正则表达式

    Python 第四篇:生成器、迭代器、装饰器、递归函数与正则表达式 Python迭代器和生成器 Python 迭代...

  • Python生成器

    1 生成器概念 生成器是一个特殊的迭代器(迭代器的抽象层级更高)所以,生成器拥有迭代器的特性:1.惰性计算,节省内...

  • 协程,生成器,迭代器

    高频率切换 迭代器 自定义迭代器 生成器 特殊的迭代器

网友评论

      本文标题:迭代器/生成器

      本文链接:https://www.haomeiwen.com/subject/zjnjgftx.html