zoukankan      html  css  js  c++  java
  • 迭代器和生成器

    怎么判断他是不是迭代器?

    两种方法

    1 "__iter__" in dir(object)  #判断是不是可迭代的  #注意__iter__要加引号

    2.引入模块

    li = [1,2,3,4,5]

    from collections import Iterable  #判断是不是可迭代的

    print(isinstance(li,Iterable))

    from collections import Iterator   #判断是不是迭代器

    print(isinstance(li,Iterator))

    今日内容大纲

    1.生成器表达式,列表推导式(其他推导式)

    2.内置函数

    一.列表推导式

    l = [i for i in range(1,14)]

    [变量(加工后的变量) for 变量  in  Iterable]  循环模式

    l1 = ["python%s期"  %i  for i in range(1,14)]

    优点:1.节省代码,一行搞定. 

       2.看着高大上

    缺点:不好排错

    整体:凡使用列表推导式构造的列表对象,用其他方式都可构建,复杂的列表推导式构建不出的.

    列表推导式比较有魔性

    [变量(加工后的变量) for 变量  in iterable  if  条件]  筛选模式

    li = [i for i in range(1,14) if i%3==0]

    生成器表达式

    l1 = ["python%s期"%i  for i in range(1,14)]

    g_obj = ("python%s期"%i for i in range(1,14))  循环模式

    for  i  in  g_obj:

      print(i)

    g_obj = ("python%s期"%i for i in range(1,14) if 条件)  筛选模式

    生成器:两种方式:1.生成器函数  yield   2. 生成器表达式

    为什么有生成器?

    生成器本身是自己用Python代码构建的.这样就满足了个性化需求,满足以后工作中需要

    字典推导式:

    mase = {"a":2,"b":4}

    dic = {mase[i]:i for i in mase}

    二.内置函数.

    一些常用的功能,Python都给封装好了,供我们直接使用.

    1.1作用域相关

    globals()  永远是全局     

    locals()  当前位置局部所有变量以及函数名等数据

    1.2其他相关

    1.2.1 字符串类型代码的执行eval  ,  exec  ,  complie

    eval:执行字符串类型的代码,并返回最终结果

    print("1+3")

    print(eval("1+3"))

    print(eval("{'a':1,'b':4}"))

    exec:执行字符串类型的代码,返回None

    code ="""

    for i in range(1,14):  #一定要注意要顶格写

      print(i)

    """

    print(exec(code))

    1.2.2输入输出相关

    input:函数接受一个标准输入数据返回str类型

    print:打印输出

    print(1,2,3,sep= "!")#sep是设置每个元素的连接符

    print(666,end=" ")#end= " "默认换行

    1.2.3内存相关

    hash:获取一个对象(可哈希对象:int,str,bool,tuple)的哈希值

    print(hash("name"))

    print(hash(100))

    print(hash(True)) 等同于 print(hash(1))

    Id 用于获取对象的内存地址

    1.2.5帮助

    help:函数用于查看函数或模块用途的详细说明

    print(help(str))

    1.2.6调用相关

    callable:函数用于检查一个对象是否可调用的,如果返回True,object仍然可能调用失败,但如果返回False,调用对象object绝对不会成功.

    例:def  func():

         print("你好美")

        a = 2

     func()

    print(callable(func))    #打印的结果是True  所以func是可调用的

    print(callable(a))         #打印的结果是False  所以a是不可调用的

  • 相关阅读:
    让我偷偷的告诉你:运维加薪的杀手锏是啥?
    网站页面优化必然趋势—WebP 图片!
    如何监控 Tomcat?Zabbix 与 Cloud Insight 对比
    网页增重不可控?试试 OneAPM Cloud Test
    提高 ASP.NET Web 应用性能的 24 种方法和技巧
    OneAlert 入门(三)——事件分析
    Cloud Insight 客户案例-晨芯时代科技有限公司
    Java开发快速上手
    微信小程序快速开发上手
    微信小程序快速开发上手
  • 原文地址:https://www.cnblogs.com/fengkun125/p/9204868.html
Copyright © 2011-2022 走看看