首页
学习
活动
专区
圈层
工具
发布

Python学习笔记(三)·高级特性

list 这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如 dict 就可以迭代: d = {'a': 1, 'b': 2, 'c': 3}...可以列出文件和目录 for循环其实可以同时使用两个甚至多个变量,比如dict的items()可以同时迭代 key 和 value: d = {'x': 'A', 'y': 'B', 'z': 'C'...这是因为 Python 的Iterator对象表示的是一个数据流,Iterator 对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...Iterator甚至可以表示一个无限大的数据流,例如全体自然数。而使用 list 是永远不可能存储全体自然数的。...小结: 凡是可作用于for循环的对象都是Iterable类型; 凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列; 集合数据类型如list、dict、str等是Iterable

94520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ETL-Kettle学习笔记(入门,简介,简单操作)

    属性 数组:[] 对象:{} 属性:key:value JSONPath: JSONPath类似于XPath在xml文档中的定位,JsonPath表达式通常是用来路径检索或设置JSON的。...但是,如果你仔细观察,还是会发现作业项有一些地方不同于步骤; 在作业项之间可以传递一个结果对象。...这个结果对象里面包含了数据行,他们不是以数据流的方式来传递到,二十等待一个作业执行完毕后再传递给下一个作业。 作业跳 作业的跳是作业项之间的连接线。他定义了作业的执行路径。...作业里每个作业项的不同运行结果决定了作业的不同执行路径。 ① 无条件执行:不论上个作业项执行成功或者失败,下一个作业项都会执行。这是一种蓝色的连接线,上面有一个锁的标。...③ 当运行结果为假时执行:当上一个作业项执行结果为假或者没有执行成功,执行一按一个作业项,这是一条红色的连接线,上面有红色停止的图标。

    4.2K31

    SAP ETL开发规范「建议收藏」

    Jobs也应该建立在以下指导原则之上: Workflow应该是在工作层面使用的唯一对象。唯一的例外是需要作业级别复制的try和catch和conditionals。...Comments应添加到以下位置: 每个对象的描述字段。每个可重用对象(即作业,工作流,数据流等)都有一个可用的描述字段。这应该包括作者,日期和对象的简短描述。...try catch的结尾可用于记录失败的审计表,通知某人失败或提供其他所需的自定义功能。Try-Catch对象可以放置在作业和工作流级别,也可以在脚本语言中以编程方式引用。...支持框架所需的数据库模式在以下四种主要方式使用: 1) 参数化作业并将参数值存储在作业和应用程序层外部的数据库结构中 2) 记录SAP Data Services应用程序框架内的作业执行情况,记录模式内的成功执行或失败...执行可以记录在作业或步骤级别 3) 在标准框架中记录作业内的消息,统计数据和参数值,以便进行报告和监控 4) 考虑到多种环境,执行类型,各种执行步骤等,可实现灵活的配置 发布者:全栈程序员栈长,转载请注明出处

    3K10

    4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点

    如果要迭代value,可以用for value in d.values() 如果要同时迭代key和value,可以用for k, v in d.items() 字符串迭代 由于字符串也是可迭代对象,...Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身 ? image.png ?...image.png 迭代器 可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的...image.png 这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。

    90430

    Spring batch教程 之 配置Step「建议收藏」

    值得一提的是, 处理过程中如果没有items, ItemReader 不应该抛出异常。...因为一般来说,items 将要被批量写入到一起,然后再输出, 所以 write 方法接受一个List 参数,而不是单个对象(item)。...文件的写入也很类似, 但步骤正好相反: 将要写入的对象传递给 writer 将领域对象的属性域转换为数组 将结果数组合并(aggregate)为一行字符串 因为框架没办法知道需要将领域对象的哪些字段写入到文件中...但是,在写出时如果发生了什么错误,就可能会引起混乱,因为没有办法知道是哪个item引起的异常, 甚至是否某个单独的 item 负有责任,如下图所示: 如果 items 在输出之前有缓冲, 则遇到任何错误将不会立刻抛出...如果list里面没有内容,则将返回null, 从而满足ItemReader 的基本要求, 测试代码如下所示: List items = new ArrayList(

    4.9K40

    Python基础学习笔记

    index没有找到直接返回异常 rindex 返回子字符串 str 在字符串中最后出现的位置 如果没有匹配的字符串会报异常 rfind 返回字符串最后一次出现的位置,如果没有匹配项则返回-1 count...用于将指定对象插入列表的指定位置 list.insert(index, obj) extend 用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list.extend(seq)...list.remove(obj) del xxx[下标]  根据下标来删除 in 操作符用于判断键是否存在于列表/字典中,如果键在列表/字典里返回true,否则返回false not in 如果在指定的序列中没有找到值返回...面向对象的三个基本要素是 封装 继承 多态 一个特殊的属性 能够知道这个对象的class 类在程序里面也是一个对象 称为类对象 由类创建出的对象为实例对象 实例对象的属性为实例属性 实例属性和对象有关系...类对象中的属性为类属性 类属性和类有关系 类属性是共享的 实例属性:和具体的某个实例对象有关系 并且 一个实例对象和另外一个实例对象是不共享属性的 类属性:类属性所属于类对象 并且多个实例对象之间共享同一个

    1.6K50

    《手把手带你学爬虫──初级篇》第6课 强大的爬虫框架Scrapy

    首先,解释一下图中各个组件的作用: 5个组件: Scrapy Engine:核心引擎,负责控制和调度各个组件,保证数据流转; Scheduler:负责管理任务、过滤任务、输出任务的调度器,存储、去重任务都在此控制...在命令行中创建基于Scrapy框架的爬虫的步骤: ? Scrapy项目结构解析 我们在PyCharm中打开创建的项目,项目结构如图: ?...文件内容解析 items.py文件中定义数据存储模板,用面向对象的思维来思考,items中的每个类的实例化对象都是一个包含特定字段和值的结构化数据对象,我们可以将在parse方法中提取到的数据,保存到这个对象中...scrapy.Item): # 定义字段 # name = scrapy.Field() pass 例如,假设我们提取了学生信息,有name、age、score等数据,那么我们可以在items.py...@ 选取属性。 XPath Helper插件 XPath Helper插件安装 为了使用方便,我们在Chrome浏览器中安装XPath Helper插件,帮助我们在页面上测试XPath表达式。

    1.4K62

    javaee的OA项目(八)EL表达式和JSTL表达式 学习,是什么,为什么,如何使用的角度进行学习

    目录 回顾 使用EL表达式和JSTL表达式 的 前提 EL表达式 是什么 JSTL表达式是什么 为什么要使用表达式 EL表达式和JSTL表达式 区别 EL表达式原理 EL获取对象属性的原理 EL和JSTL...} //获取对象 Object value =request.getAttribute(“stu”); //获取对象对应的类 Class clazz = value.getClass(); //通过属性获取属性对应的操作方法...= null; String str3 = ""; List list = new ArrayList();//分配空间,没有元素 list.add(90);...list.add(80); List list2 =null;//没有分配空间 List list3 =new ArrayList();//分配空间,没有元素 size()==...("str3", str3); //2.使用JSTL和EL输出 %> 第四步: 因为已经在小脚本里面 ,根据 request.setAttribute

    81320

    4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点

    如果要迭代value,可以用for value in d.values() 如果要同时迭代key和value,可以用for k, v in d.items() 字符串迭代 由于字符串也是可迭代对象...Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身 [image.png] [image.png] 迭代器 可以直接作用于for...循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。...我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator...这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。

    75870

    FastAPI(44)- 操作关系型数据库

    ORM FastAPI 可与任何数据库和任何样式的库配合使用并和数据库通信 object-relational mapping 对象关系映射 ORM 具有在代码和数据库表(关系)中的对象之间进行转换(映射...)的工具 使用 ORM,通常会创建一个表示 SQL 数据表的类,该类的每个属性都表示一个列,具有名称和类型 小栗子 Pet 类可以表示 SQL 表 pets 并且 Pet 类的每个实例对象代表数据库中的一行数据...password: str class User(UserBase): id: int is_active: bool items: List[Item] = []...会从 items 表中获取该用户的 item 数据,但在这之前不会主动获取 current_user.items 如果没有 orm_mode 从路径操作中返回一个 SQLAlchemy 模型,它将不会包括关系数据...它用于存储附加到请求本身的任意对象,例如本例中的数据库会话 db 也就是说,我不叫 db,叫 sqlite_db 也可以,只是一个属性名 使用中间件 middleware 和使用 yield 的依赖项的区别

    2.8K30

    JavaWeb 学习之 JSTL

    自定义标签分为空标签、带内容的标签、带属性的标签、带属性和带内容的标签、带有父标签的标签     2. 开发自定义标签的核心就是编写标签处理器     3. 步骤       1)....编写标签库的描述文件(.tld),在 tld 文件对自定义标签进行描述       3). 在 JSP 页面导入和使用自定义标签     4....编写带属性的自定义标签(我们自定义一个带有 count 属性和 attr 属性的标签,该标签的功能是将 attr 属性值打印在页面上,并打印 count 次)       1)....父标签和子标签只是在标签处理器上有联系(通过 getParent),而在 tld 描述文件上没有联系       4. 新建三个标签处理器类,如下         a.... items; 16 private String var; 17 18 public void setItems(List items) { 19

    4.3K150

    Flink吐血总结,学习与面试收藏这一篇就够了!!!

    「有界数据」,就是在一个确定的时间范围内的数据流,有开始有结束,一旦确定了就不会再改变。...上使用异步函数的能力) 处理数据API 处理数据API 核心抽象 环境对象 数据流元素 StreamRecord(数据流中的一条记录|事件) 数据的值本身 时间戳(可选) LatencyMarker...与分阶段调度基本一样,区别在于该模式下使用批处理资源申请模式,可以在资源不足的情况下执行作业,但是需要确保在本阶段的作业执行中没有Shuffle行为) 关键组件 JobMaster 调度执行和管理(将JobGraph...结构 作业调度失败 失败异常分类 NonRecoverableError:不可恢复的错误。...作业中添加了新的算子,如果是无状态算子,没有影响,可以正常恢复,如果是有状态的算子,跟无状态的算子一样处理。

    1.2K20

    高级前端一面常考手写面试题指南

    // 如下str字符串中并没有定义a,但是确可以使用上面定义的a变量,这显然是不对的,在模块化机制中,str字符串应该具有自身独立的运行空间,自身不存在的变量是不可以直接使用的// const a =...然后通过new Module实例化的方式创建module对象,将模块的绝对路径存储在module的id属性中,在module中创建exports属性为一个json对象// 使用tryModuleLoad...,让其不能再添加/删除属性,也不能修改该对象已有属性的可枚举性、可配置可写性,也不能修改已有属性的值和它的原型属性,最后返回一个和传入参数相同的对象function myFreeze(obj){ //...了解了属性和方法之后,根据 AJAX 的步骤,手写最简单的 GET 请求。...在这个对象上使用 open 方法创建一个 HTTP 请求,open 方法所需要的参数是请求的方法、请求的地址、是否异步和用户的认证信息。在发起请求前,可以为这个对象添加一些信息和监听函数。

    57820

    使用Python时要注意的十大陷阱

    更优雅的方案是封装成类,通过方法修改实例属性。 二、可变默认参数的"记忆陷阱" 函数默认参数在定义时就被实例化,这个特性像记忆面包一样,会保留每次调用的状态。...try: risky_operation() except: # 捕获所有异常 pass # 静默失败 最佳实践:始终指定具体异常类型,使用else和finally处理正常流程和资源清理...在日志中记录异常信息,避免错误消失于无形。 六、列表操作的"原地变形" sort()和reverse()等方法会直接修改原列表,这种原地操作就像给数据做整形手术,没有备份版本。...在需要保留原始数据的场景,这是不可省略的步骤。 七、装饰器的"自我迷失" 当装饰器需要访问实例方法时,容易丢失self引用,就像在镜像迷宫中找不到出口。...def process_data(data): return data.upper() + str(len(data)) process_data(123) # 报错:int没有upper

    26010
    领券