python2.7学习笔记(6) ——高级特性:切片、迭代、列表生成式、生成器
来源:互联网 发布:360端口查看器 编辑:程序博客网 时间:2024/04/30 01:28
切片
用于截取list中的元素,比如L是一个list
L[a : b] a
迭代
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
只要是可迭代对象,无论有无下标,都可以迭代
如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:
>>> from collections import Iterable>>> isinstance('abc', Iterable) # str是否可迭代True>>> isinstance([1,2,3], Iterable) # list是否可迭代True>>> isinstance(123, Iterable) # 整数是否可迭代False
列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
生成器
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。generator保存的是算法
创建方法:
一、只要把一个列表生成式的[]改成(),就创建了一个generator
使用generator的next() 方法可以每次计算出下一个值,但是没次使用next方法太过麻烦而且变态,所以经常使用迭代来使用,generator也是一个可迭代对象
二、使用函数来表达一个算法的时候,用print来打印出数字,我们可以将print换成yield,执行流程是,没次碰到yield就返回,当使用next方法时,就从上次退出的yield方法继续执行下去。
- python2.7学习笔记(6) ——高级特性:切片、迭代、列表生成式、生成器
- Python高级特性(切片 迭代 列表生成式 生成器 迭代器)学习笔记
- python切片、迭代、生成器、列表生成式等高级特性学习
- Python高级特性(切片,迭代,列表生成式、生成器、迭代器)
- 7.python高级特性:切片,迭代,列表生成式,生成器,迭代器
- Python高级特性:切片;迭代;列表生成式;生成器;迭代器
- python——切片 迭代 列表生成式 生成器
- Python笔记3——切片,迭代,列表生成式,生成器
- Python(八)切片、迭代、列表生成式、生成器
- Python高级特性-迭代(Iteration)-列表生成式-生成器
- python学习笔记(7)-高级特性(三)-列表生成式与生成器
- 初学python:切片、迭代、列表生成式、生成器
- Python学习 Day 4 函数 切片 迭代 列表生成式 生成器
- 【Python2.7 学习笔记】Python 基础(三)迭代 + 列表生成式
- 切片,生成式,生成器,迭代
- python(六)切片,生成式,生成器,迭代
- 【4-1】高级特性——切片和迭代
- python入门笔记(Day3)--切片,迭代(器),列表生成式/器,
- 十大编程算法
- 设计模式之适配器模式
- 【问题及解决】Elasticsearch--Failed to deserialize exception response from stream
- C语言求最小公倍数和最大公约数三种算法
- Linux下SVG浏览存在问题及解决方法
- python2.7学习笔记(6) ——高级特性:切片、迭代、列表生成式、生成器
- printf() 不能进行数据类型转换
- 应用before/after伪类时如何CSS命名以及针对ie6/ie7浏览器兼容
- 禁止QQ自动转义表情字符
- The "ReQU" unit
- Google Java编程风格指南中文版
- caffe源码解析 — net.cpp
- JQuery EasyUI DataGrid 获取属性值
- JAVA开发编码全解析(一)----编码的由来和种类