zoukankan      html  css  js  c++  java
  • 数据类型扩展

    一、基础数据类型

    数值(int、float)

    序列(list、str、tuple)

    散列(set、dict)

    可迭代对象(序列、散列)

    二、命名元组

    from collections import namedtuple
    student = namedtuple('Students', ('name', 'age', 'skill'))
    stu = student('幂次方', 18, 'python自动化')
    stu[1] ==stu.age
    判断是否是该数据类型:print(isinstance(stu, tuple))
    

    三、推导式

    三目运算:

    res = True if  条件 else False
    if number > 60: print("大于") else: print('小于')
    res = True if number > 60 else False

    列表推导式:

    需求,生成 [py1,,,,,py20]
    li = [] for i in range(1,21): li.append('py{}'.format(i))
    li = ['py{}'.format(i) for i in range(1,21)]

    集合推导式:

    se = {'py{}'.format(i) for i in range(1,21)}
    

    字典推导式:

    dic = {'name{}'.format(i): i * 100 for i in range(1, 21)}
    

    可迭代对象和迭代器:

    可迭代对象:能够使用for遍历的数据都是可迭代对象

    迭代对象内部实现了迭代协议(这个对象拥有__iter__这个方法)

    迭代器:迭代器也是可迭代对象的一种

    迭代器: 不仅仅实现了__iter__这个方法,还实现了__next__方法

    迭代对象转换为迭代器:迭代器 = iter(可迭代对象)

    迭代器:可以使用内置函数next进行迭代

    li = [11, 22, 33, 44]
    
    li_tor = iter(li)
    
    # next函数
    print(next(li_tor))
    print(next(li_tor))

    注意点:当使用next获取完迭代器中所有的元素之后,再次使用next进行迭代,会抛出迭代器停止的异常

    生成器(相当于元组推导式)(特殊的迭代器):

    创建生成器的两种方式

    生成器表达式:tu = (i for i in range(10))
    
    生成器函数:只要函数中使用了yield这个关键字,那么这个函数就是一个生成器函数
    
    def gen():
        for i in range(10):
            yield {'a':i}

    三种方法:

    生成器的send方法:生成器的send方法可以和生成器内部进行数据交互、调用send方法执行要执行一次next

    close:关闭生成器 g.close()

    throw:往生成器内部发送一个异常 、主动发送一个异常到生成器中

    俗话说:不积跬步无以至千里! 俗话又说:好记性不如烂笔头!
  • 相关阅读:
    MFC编程习惯
    光源的频闪与常亮
    相机的选择——卷帘快门(Rolling Shutter)与全局快门(Global Shutter)
    Halcon标定(以40*40标定板为例)
    DALSA线阵相机使用教程(以16K为例)、保存配置文件ccf细节
    打包exe(使用Inno Setup)
    机器视觉项目总结——镜头
    Qt(MinGW版本)utf8终端中文乱码解决方案
    Qt(MinGW版本)安装
    (C#)Windows Shell 外壳编程系列7
  • 原文地址:https://www.cnblogs.com/micifang/p/14509155.html
Copyright © 2011-2022 走看看