• python 学习迭代器的认识


    # 迭代器的认识
    # 获取一个对象的所有方法 任何对象中 只要有 __iter__ 这个字符串就是可迭代对象
    s1 = "djflkdjfl"
    # l1= [1,2,3,4]
    # print(dir(s1)) # 查看一个对象是不是可迭代对象 用 dir() 这个函数来查看,查看对象的所有使用方法
    # print("__iter__" in dir(s1)) # 判断对象是不是可迭代对象 用 in

    # 判断迭代器 必须在使用方法中 有 __next__ 和 __iter__ 有这个字符串就是迭代器

    #print(iter(s1))
    # a = iter(s1) # 转换为迭代器
    # print(next(a)) # 对迭代器进行取值
    # print(next(a)) # 打印一次取一值
    # print(next(a))
    # print(next(a))
    # print(next(a))

    # 用while 循环模拟for 循环。
    # l1 = [11,22,33,44,55,66]
    # opj = iter(l1)
    # while 1:
    # try: # 检查异常代码
    # print(next(opj))
    # except StopIteration: # 异常代码报错信息
    # break


    # 二 生成器
    # 生成器是我们自己用python 代码构建的一种数据结构。 生成器也是迭代器的一种
    # 获取生成器的 三种方法 1 生成器函数 2 生成器表达式 3 python 内部提供的
    # 1 生成器函数
    # def fun():
    # print('我是中国人')
    # #return 4
    # yield 4
    # yield 5
    # yield 6
    # req = fun()
    # #print(req)
    # print(next(req))
    # print(next(req))
    # print(next(req)) # 生成器函数的调用方法和 迭代器的调用方法是一样的。一次只能调用一个值 (调用一次放到内存中,调用下一个值得时候覆盖上一次得调用值。)

    # 生成器函数 只要函数里有 yield 她就是个生成器函数了 。yield 可以存在好多个。她的调用方式就是迭代器的调用方法了。

    # def fun(x,l1=[]):
    # for x in range(1,x):
    # l1.append(f"{x}号包子")
    # yield from l1 # yield from (对象 ) 相当于 把对象 做了 iter(对象) 变成了一个迭代器
    # req = fun(5)
    # print(next(req))
    #
    # print(next(req))
    # print(next(req))
    #
    # print(next(req))

    # 三 列表推导式
    # 用一行代码构建一个比较复杂有规律的列表
    # list1 = []
    # for i in range(11):
    #
    # list1.append(i)
    # print(list1)
    #
    # list1 = [i for i in range(11)] # 这个就是简单的列表推导式。 这个是简单得循环列表推导式
    # print([i for i in range(11)])
    # print([i**2 for i in range(11)])
    # print([i for i in range(0,100) if i%2==0 ]) # 这个是筛选条件得 列表推导式
    # print([f"我吃了{i}个包子" for i in range(10)])

    # l1 = [[1,2,3,4,5,6,8,7,9,],[1,2,3,4,5,6,7,8,8,8,9]]
    # # for i in l1[0],l1[1]:
    # # for j in i:
    # # if j ==8:
    # # print(j)
    # print([j for i in l1 for j in i if j == 8]) # 多层循环嵌套 也可以实现 列表推导式

    # 生成器表达式
    # 生成器表达式和列表表达是一样 只有一点 把中括号换成小括号
    # 生成器表达式 也有 循环模式 筛选模式 多层循环嵌套模式
    # opg = (i for i in range(101))
    # opg2 = (i for i in range(1,100,3))
    #
    # print([i for i in range(2,11)]+list("JQKA")) # 列表得相加
  • 相关阅读:
    numpy 学习
    小技巧:Python中,如何让语句输出在同一行的技巧:end=
    Python 循环简介
    Python中第一个if else逻辑判断小程序
    如何让Notepad++的Table转化成4个空格
    Python3.5.2中的变量介绍
    通过配置环境变量,直接运行python3.5.2
    Python3.5.2安装方法
    java 规范
    java数据类型
  • 原文地址:https://www.cnblogs.com/yangtao481/p/13130215.html
Copyright © 2020-2023  润新知