zoukankan      html  css  js  c++  java
  • 列表推导式和生成器表达式和内置函数

     

    基础学习之第十四天(列表推导式和生成器表达式和内置函数)

     

    迭代器的优点:
      1.节省内存
      2.惰性机制
      3.单向,不可逆
    如何判断它是否是可迭代对象和迭代器

      可迭代对象->迭代器

      可迭代对象__iter__():就会变成迭代器
        1.'__iter__'in dir(obj):True或Flase,返回True就代表他是可迭代对象
        2.引入模块
          from collections import Iterator(迭代器)
          print(isinstance(参数名,Iterator)
          from collections import Iterable(迭代对象)
          print(isinstance(参数名,Itera)ble
      生成器:
        自己用python代码写的迭代器就是生成器
        生成器本身就是迭代器
    生成器的表达式和列表推倒式
      1.列表推导式
        [变量(加工后的变量) for 变量 in iterable(迭代对象)] # 循环模式
        [变量(加工后的变量) for 变量 in iterable if 条件] # 筛选模式
      2.生成器表达式:和列表表达式一样只是括号不一样

                  (变量(加工后的变量) for 变量 in iterable(迭代对象)) # 循环模式
        (变量(加工后的变量) for 变量 in iterable if 条件) # 筛选模式

        优点:1.节省代码
        缺点:不好排错
        整体:凡是用列表推导式构造的,用其它方式也可以,非常复杂的列表,列表推导式是构造不出来的

    内置函数

    1.1作用域相关
    a =33
    b = 22
    def func():
        a = 1
        print(globals(),'
    ',locals())
    func()
    1.21其他相关
    字符串类型代码的执行 eval,exec,complie
    print(eval('1*2*3*4*5*6*7*8*9'))
    li = """
    for i in range(10):
        print(i)
    """
    exec(li)
    1.22输入输出相关print 和 input
    k = print(1,2,4,6,sep='******',end='')
    with open('试验品.txt','w',encoding='utf-8') as f:
        print('111111111111',1111,file=f,sep='****')
        print('111111111111',1111,file=f,sep='****')
        print('111111111111',1111,file=f,sep='****')
    1.23内存相关hash():获取一个可哈希对象的哈希值,id(返回内存地址)
    print(hash(1020000000000000000))# 数字最多19个才能保证可哈希值和数值一样,超过的话就会变成别的
    print(hash('1111111111111111111')) # 哈希字符串
    print(hash((1,2,3,4))) # 哈希元组
    print(hash(True)) # 哈希bool值
    1.24文件打开和模块相关操作open()和import()函数用于动态加载类和函数 
    open:函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写
    1.25 help():帮助
    a = 1
    help(a)#查看帮助
    1.26 调用相关 callable()能调用返回True 不能调用返回False
    按 Ctrl+C 复制代码

     

    def func():
    a = 123
    b = 147
    def func1():
    aa = 1111
    bb = 1111
    return func1
    print(callable(func))

    按 Ctrl+C 复制代码

  • 相关阅读:
    alter noparallel
    朝代
    asp.net core 发布包含文件
    执行dotnet *.dll启动项目,如何修改环境变量----ASPNETCORE_ENVIRONMENT
    MySQL授权--WITH GRANT OPTION
    js/ts/tsx读取excel表格中的日期格式转换
    linux test tool--"ab"
    nginx代理配置
    docker 容器与本机文件的拷贝操作
    linux系统,没有安装任何编辑器的情况,如何操作文件
  • 原文地址:https://www.cnblogs.com/123zzy/p/9205069.html
Copyright © 2011-2022 走看看