时间:2021-05-22
本文实例讲述了Python列表推导式与生成器表达式用法。分享给大家供大家参考,具体如下:
和列表一样,列表推导式也采用方括号[]表示,并且用到了一个简写版的for循环,第一部分是一个生成结果列表元素的表达式,第二部分是一个输入表达式上的循环。阅读理解列表表达式的推荐做法是先从里面的for循环开始,向右查看是否有if条件,然后将推导式开始的那个表达式映射到每一个匹配的元素上去。
>>> even_numbers = [x for x in range(10) if x%2 == 0]>>> even_numbers[0,2,4,6,8]以上例子展示了使用if语句来过滤元素。
Python还支持另外一种和列表表达式类似的结构,叫做生成器表达式(generator expression),除了它有一种称之为“惰性计算”的特点以外,它和列表推导式的用法基本一致。它的工作方式是每次处理一个对象,而不是一口气处理和构造整个数据结构,这样做的潜在优点是可以节省大量的内存。
>>> even_numbers = (x for x in range(10000) if x%2 == 0)>>> even_numbers<generator object at 0x....>在处理大量的数据是,最好考虑生成器表达式而不是列表推导式。
另一个列表推导式和生成器表达式的例子是:
>>> data = ['abc','def','I use python', 'hong201']>>> sum([len(word) for word in data])25>>> sum(len(word) for word in data)25enumerate()是一个同时能让你迭代和计数的内置函数,而for循环自身只能迭代而没办法计数:
>>> data = [123,"abc",3.14]>>> for i in enumerate(data):... print i...(0, 123)(1, 'abc')(2, 3.14)更多关于Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python数组操作技巧总结》、《Python字符串操作技巧汇总》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python数据结构与算法教程》
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了python生成器推导式用法。分享给大家供大家参考,具体如下:1.生成器推导式是继列表推导式后的有一中python推导式,他比列表推导式速度更快,
1、Python生成器表达式1)、Python生成器表达式语法格式:(exprforiter_variniterable)(exprforiter_varini
本文实例讲述了Python列表推导式与生成器用法。分享给大家供大家参考,具体如下:1.先看两个列表推导式deft1():func1=[lambdax:x*ifo
列表推导与生成器表达式当我们创建了一个列表的时候,就创建了一个可以迭代的对象:复制代码代码如下:>>>squares=[n*nforninrange(3)]>>
前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存列表解析和生成器表达式很相似:列表解析[exprforiter_