Python迭代和列表生成器】的更多相关文章

使用for循环遍历list和tuple,这种遍历成为迭代 在如C语言中都是通过下标拿到值,for...in这种方式其实是相同的. 在函数的一节,这样说--->‘求和函数sum(),sum(iterable,start),第一个参数必须是可以迭代对象,list;tuple.’  可迭代对象为list,tuple 所以使用for遍历时,对象是要可以迭代的. 如何判断一个对象能不能迭代? Python的collections模块的Iterable可以判断是否可以迭代;   isinstance()函数…
1.python高级特性 1.1切片 list列表 L=['Mli','add','sal','saoo','Lkkl'] L[0:3]  #即为['Mli','add','sal']  从索引0开始,到索引3结束,但不包括3 L[:3]等价于 L[0:3] L[-2:]  #即为 ['saoo','Lkkl']   最后一个元素的索引为-1 L[-2:-1]  #即为['Lkkl'] L=range(100)  #则L[1:6:2]为 每个两个元素取一个数  所以输出为[2,4] tuple也…
 [TOC] 1. 列表解析 1.1 列表解析基础 列表解析把任意一个表达式应用到一个迭代对象中的元素 Python内置ord函数会返回一个字符的ASCII整数编码(chr函数是它的逆过程, 它将ASCII整数编码转化为字符) >>> ord('1') 49 >>> ord('A') 65 >>> chr(65) 'A' >>> 如果我们需要收集一个字符串的所有字符的ASCII编码,最直接的方法是使用一个简单的for循环 >&…
3.列表生成器(List Comprehensions) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式.举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 还有一种常用的简洁的方法: >>> [x * x fo…
首先,思考一个问题,比如,我们想生成0-100的列表,我们怎么做? 当然,可以写成 list1=[1,2,3...,100] 可以看出,这种方法不适合生成长的列表,那么Python中就可以利用已有的列表,生成新的列表,叫做列表生成式,下面就很简洁了 list2=[x for x in range(1,101)] list1和list2是一样的,只是list2更简单 比列表生成式更进一步的是,是列表生成器generator g=(x*2 for x in range(1,101)) g是一个生成器…
列表生成式 a = [x for x in range(10)] print(a) x 可进行操作 a = [x*2 for x in range(10)] print(a) x甚至可以为函数, def f(n): return n*n*n a = [f(x) for x in range(10)] ######################## 赋值方法 t = ('123',8)a,b = tprint(a)print(b)#############a =(x for x in range…
什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过 for ... in 来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码: for (i=0; i<list.length; i++) { n = list[i]; } 可以看出,Python的for循环抽象程度要高于Java的for循环. 因为 Python 的 fo…
迭代: 迭代对象(Iterable),可以直接作用于for循环的对象,如list / tuple / dict / set / str /等集合数据类型可以直接作用于for循环 >>> spam={1:'A',2:'B',3:'C'} >>> for x in spam: #默认情况下,dict迭代的是key print x 1 2 3 >>> for value in spam.values(): #values():迭代value print va…
5.迭代器 由之前的生成器可知,for循环用于可迭代对象:Iterable.包括集合数据类型: list.tuple.dict.set.str 等,以及两种生成器.判断迭代器,使用 isinstance(type, Iterable) .还有的是,可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator.注意定义区分:生成器都是Iterator对象,但list.dict.str虽然是Iterable(可迭代的),却不是Iterator(迭代器). 理解:Python的Ite…
4.生成器(generator) 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间. 创建一个generator,有很多种方法.第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator: >>> g = (x * x for x in range(1, 11) if x % 2 == 0)…