迭代器是 23 种设计模式中最常用的一种(之一),在 Python 中随处可见它的身影,我们经常用到它,但是却不一定意识到它的存在.在关于迭代器的系列文章中(链接见文末),我至少提到了 23 种生成迭代器的方法.有些方法是专门用于生成迭代器的,还有一些方法则是为了解决别的问题而“暗中”使用到迭代器. 在系统学习迭代器之前,我一直以为 range() 方法也是用于生成迭代器的,现在却突然发现,它生成的只是可迭代对象,而并不是迭代器! (PS:Python2 中 range() 生成的是列表,本文基…
利用嵌套for循环形成一个新列表 [i*j for i in range(3) for j in range(3)]相当于如下代码 li=[] for i in range(3): for j in range(3): print(i*j) li.append(i*j) print(li) 结果和[i*j for i in range(3) for j in range(3)]的结果一样都是: [0, 0, 0, 0, 1, 2, 0, 2, 4] 以上就是利用嵌套for循环形成一个新列表是怎么…
range()是列表, xrange()是迭代 >>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): ... print i, a[i] ... 0 Mary 1 had 2 a 3 little 4 lamb 然而,在大部分情况下使用enumerate()函数会更加方便,请参见循环的技巧.…
数据源: "姓名""基数""个人比例""个人缴纳""公司比例""公司缴纳""总计",共7列7行数据 目标: 留下第2.3.4三行数据 操作过程: [主页]>[保留行]>[保留行的范围]>输入保留的起始行>输入待保留的行数>[确定] M公式: = Table.Range( 表, 保留的起始行, 保留的行数) 说明: 保留的行数如果缺省,则一…
先看看Python help()的说明 help(range) Help on built-in function range in module __builtin__: range(...) range(stop) -> list of integers range(start, stop[, step]) -> list of integers Return a list containing an arithmetic progression of integers. range(i,…
range(): range([start,] stop[, step]) 如: range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range()默认起始点为0 且range()返回的是一个list xrange()返回的是一个生成器,需要list()将其转换 但其性能比range()好,因为不用一开始就开辟一块内存,在生成很大的数字序列的时候尤为明显. 注:在python3中,xrange() 改名为range(),要想使用range()获得一个list,必须显…
range 前面小节已经说明了,range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. xrange用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器. xrange做循环的性能比range好,尤其是返回很大的时候.尽量用xrange吧,除非你是要返回一个列表. Python3.x中移除了range(),保留了xrange并且重命名为range(). >>> type(range(…
Help on built-in function range in module __builtin__: range(...) range(stop) -> list of integers range(start, stop[, step]) -> list of integers Return a list containing an arithmetic progression of integers. range(i, j) returns [i, i+1, i+2, ..., j…
使用xrange   当我们获取某个数量的循环时,我们惯用的手法是for循环和range函数,例如: for i in range(10): print i 这里range(10)生成了一个长度为10的列表,内容为从0到9,所以这里的for循环实际上是在遍历其中的元素. 如果循环次数过大的时候,range要生成一个巨大的列表,这将导致程序的性能降低. 解决方案是采用xrange,用法基本与range相同: for i in xrange(10): print i 但是二者的性能差距到底有多大?…
我目前使用的版本是2.7.6 >>> help (range)Help on built-in function range in module __builtin__: range(...) range(stop) -> list of integers range(start, stop[, step]) -> list of integers Return a list containing an arithmetic progression of integers.…
先来看看range与xrange的用法介绍 help(range)Help on built-in function range in module __builtin__: range(...) range(stop) -> list of integers range(start, stop[, step]) -> list of integers Return a list containing an arithmetic progression of integers. range(i…
range与xrange的用法是完全相同的,不同的是返回结果不同:range返回的是一个list,而xrange返回的是一个生成器.可以来看下 print type(range(5)) print type(xrange(5)) #打印结果:<type 'list'> # <type 'xrange'> 可以看到他们的返回类型是不一样的,一个是list,一个是xrange,也就是说range返回时需要开辟一个内存空间来存储这个list,而xrange是每次调用返回的其中一个值,也就…
range range 是一种类型(type),它是一个数字的序列,而且是不可变的,通常用在for循环中. class range(stop)class range(start, stop [, step])第一种构造方式,start默认值为0,step默认值为1. 当step为正时,一个range的元素值为r[i] = start + i * step  且 r[i] < stop: step为负时,r[i] > stop. print range(10,20,2) print range(…
在python2.7中range()某个区间后,内存会立即创建区间内的所有数值,严重浪费内存,所以就出现了xrange():每次循环的时候生成一个数值 在python3版本中不存在xrange,只有range他的作用等同与2.7版本的xrange,可以说是做了优化 1 for a in range(1,10): 2 print(a) 输出结果: 1 2 3 4 5 6 7 8 9 可以看到列出了数字1-9,因为range的取值方式range(1,10)是从头取值取到末尾的前一位截止,所以取值1-…
by Harrison Feng in Python 无论是range()还是xrange()都是Python里的内置函数.这个两个内置函数最常用在for循环中.例如: >>> for i in range(5): ... print i ... 0 1 2 3 4 >>> for i in xrange(5): ... print i ... 0 1 2 3 4 >>> range()和xrange() 在Python 2里是两种不同的实现.但是在P…
#/usr/bin/python #coding=utf-8 #@Time :2017/10/25 19:22 #@Auther :liuzhenchuan #@File :range与xrange的区别.py 示例1:range()打开时占用内存#range生成一个list ,xrange是一个生成器 #range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列 print range(5) print range(1,5)…
range(start,stop,step): 1.用于循环时使用,可以给定开始,结束,和步长 例如: >>> for i in range(2,10,2):... print i,...2 4 6 8 2.也可以不给定步长,默认是1 例如: >>> for i in range(1,5):... print i,...1 2 3 4 3.也可以不给定结尾,默认从0开始 例如: >>> for i in range(5):... print i,...…
range     函数说明:range([start,] stop[, step]).依据start与stop指定的范围以及step设定的步长,生成一个序列. range演示样例:  >>> range(5) [0, 1, 2, 3, 4] >>> range(1,5) [1, 2, 3, 4] >>> range(0,6,2) [0, 2, 4] xrange     函数说明:使用方法与range全然同样,所不同的是生成的不是一个数组.而是一个生…
range: 函数说明,range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表. xrange:函数说明,xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器. 1.range和xrange都是在循环中使用,输出结果一样.                    2.range返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object).     …
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. range示例: >>> range(6) [0, 1, 2, 3, 4, 5] >>> range(0,6,2) [0, 2, 4] xrange 函数说明:语法上和range完全相同,所不同的是生成的不是一个数组,而是一个生成器.xrange示例: >>> xrange(6) xrange(6)…
相信很多人对xrange和yield都不是很清楚,网上很多文章也是写的云里雾里的,今天我用最简单的例子给大家说下. 说起xrange的时候就一定要提range,其实xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器. >>> xrange(5) xrange(5) >>> list(xrange(5)) [0, 1, 2, 3, 4] >>> xrange(1,5) xrange(1, 5) >>…
CoreText实现图文混排之点击事件 主要思路 我们知道,CoreText是基于UIView去绘制的,那么既然有UIView,就有 -(void)touchesBegan:(NSSet<UITouch *> )touches withEvent:(UIEvent )event方法,我们呢,就是基于这个方法去做点击事件的. 通过touchBegan方法拿到当前点击到的点,然后通过坐标判断这个点是否在某段文字上,如果在则触发对应事件. 上面呢就是主要思路.接下来呢,我们来详细讲解一下.还是老规矩…
CoreText的介绍 Core Text 是基于 iOS 3.2+ 和 OSX 10.5+ 的一种能够对文本格式和文本布局进行精细控制的文本引擎.它良好的结合了 UIKit 和 Core Graphics/Quartz: UIKit 的 UILabel 允许你通过在xIB 中简单的拖曳添加文本,但你不能改变文本的颜色和其中的单词. Core Graphics/Quartz几乎允许你做任何系统允许的事情,但你需要为每个字形计算位置,并画在屏幕上. Core Text 正结合了这两者!你可以完全控…
这些是最开始学习python时的笔记,今天整理一下,在这里记录一下. 各种基础代码解释 for key,item in enumerate(li): print(key,item) inp=input("请输入商品序号:") #在这里inp是字符串类型 inp_num=int(inp) #将字符串类型转换为int类型 #如果不转换则这个inp="0"是这种样式的字符串 #在下面输出是li列表中的前面的序号为int型数字,所以如果没有转换就会报错 print(li[i…
在python3中range()是这样的: >>> range(4) range(0, 4) #额,列表跑哪去了 在之前的python2中是这样的: >>> range(4) [0, 1, 2, 3] #难道range函数变了吗? 看看二者是还可以作为可迭代对象: 在python3中: for i in range(4): print(i) 0 1 2 3 #貌似可以 再来看看python2: >>> for i in range(4): ... pr…
1,range: 函数说明:range([start,]stop[,step]),根据start和stop的范围以及步长step生成一个序列 代码示例: >>> range(5) [0, 1, 2, 3, 4] >>> range(2,5) [2, 3, 4] >>> range(2,5,2) [2, 4] 2,xrange 函数说明:功能和range一样,所不同的是生成的不是一个数组而是一个生成器 代码示例: >>> xrange(…
  Python range() 函数用法 python range() 函数可创建一个整数列表,一般用在 for 循环中. 函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始.默认是从 0 开始.例如range(5)等价于range(0, 5); stop: 计数到 stop 结束,但不包括 stop.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1.例如:range(0, 5) 等价…
列表 -- list 有序,可变的,索引, 作用:存储数据的,支持很多种数据类型 定义方式: lst = [1,"alex","黑哥"] 增: append 追加 insert 插入 extend 迭代添加 删 del lst -- 删除整个列表 del lst[0] -- 通过索引删除 del lst[1:2] -- 切片删除 del lst[1:4:2] -- 步长删除 clear 清空列表 remove 通过元素进行删除 pop 1.默认删除最后一个 2.有返…
列表--list 列表:列表是python的基础数据类型之一,存储多种数据类型 可变 支持索引 可切片 方便取值 li = ['alex',123,Ture,(1,2,3,'wusir'),[1,2,3,'小明',]] 定义列表:lst=["Alex",123,True]用,逗号分隔是一个元素 Id 获取对象的内存地址 lst=[] print(lst[0]) print(id(lst[0])) 列表的索引 lst = ['刘德华','周润发','周杰伦','向华强'] print(l…
1.列表 list 存放一些数据的容器 比如 衣柜 书包 作用:存储一些数据,数据量比较大 可以下标 可以切片 可以步长 和字符串的完全一样 lst = [1,2,3] print(lst) #[1,2,3] lst = ["qwe","wwe",4,5,6] print(lst) #["qwe","wwe",4,5,6] lst = ["qwe","wwe",4,5,6] print(…