Python高级特性

  • 列表生成式:不过一种语法糖
  • 生成器:不过一个方法
  • 迭代器:

列表生成式

Python内置的函数,来创建list。

简单的生成:

>>> list(range(1,11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

复杂的生成:增加一个for循环。

>>> a = [x*x for x in range(1, 11)]
>>> a
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

还可以在for循环后加if判断,这样对循环后的所有元素进行整除,得到符合条件的一组元素,返回的是list。

>>> a = [x*x for x in range(1, 11) if x%2 == 0]
>>> a
[4, 16, 36, 64, 100]

还可以套用两层for循环

>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

for循环可以同时接收多个变量。比如dict的items()方法:

>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
>>> for k, v in d.items():
... print(k, '=', v)
...
x = A
y = B
z = C
>>> d.items()
dict_items([('x', 'A'), ('y', 'B'), ('z', 'C')])

小结:

list生成式:

[表达式/0~n个变量 for 0~n个变量 in list/dict/相关变体]

本质就是使用循环和条件语句对list/dict进行筛选:

[表达式/变量 条件/循环语句 条件/循环语句]

Ruby类似的方法糖。

Ruby没有列表生成式,但有很多语法糖,来操作array对象。

range对象使用to_a转化为数组。

> (1...11).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

乘方后,增加一个判断:等同Python上面的列表生成式

python高级特征:列表生成式;generator, 迭代器。的更多相关文章

  1. Python高级教程-列表生成式

    List Comprehensions(列表生成式) 列表生成式,是Python内置的非常简单却强大的可以用来创建list的生成式. 例如,要生成list:[1,2,3,4,5,6,7,8,9,10] ...

  2. Python高级特性——列表生成式(list Comprehensions)

    List Comprehensions 即列表生成式,是Python内置的强大的用来生成列表list的生成式. 简单菜: >>> l = list(range(2,13)) > ...

  3. Day9 python高级特性-- 列表生成式 List Comprehensions

    Python内置的非常简单却强大的可以用来创建list的生成式.    私理解为,就是for循环出来的结果搞成个list~~~~    要生成顺序增量list可以使用list(range(x,y))来 ...

  4. python学习笔记——列表生成式与生成器

    1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...

  5. Python高级编程之生成器(Generator)与coroutine(二):coroutine介绍

    原创作品,转载请注明出处:点我 上一篇文章Python高级编程之生成器(Generator)与coroutine(一):Generator中,我们介绍了什么是Generator,以及写了几个使用Gen ...

  6. Python中的列表生成式和多层表达式

    Python中的列表生成式和多层表达式 如何生成[1x1, 2x2, 3x3, ..., 10x10]的列表? L=[]; ,): L.append(x*x) print L print (" ...

  7. python 迭代 及列表生成式

    什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过 for ...

  8. (python函数02)列表生成式

    (python函数02)列表生成式 示例代码  num = [i for i in range(1, 10)] print(num) ​ num = [i for i in range(1, 10) ...

  9. Python之旅Day5 列表生成式 生成器 迭代器 装饰器

    装饰器 器即函数,装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 装饰器涉及的知识点= 高阶函数+函数嵌套+闭包 在遵循下面两个原则的前提下为被装饰者新功能 ...

随机推荐

  1. 在学习python的Django\Flask\Tornado前你需要知道的,what is web?

    我们都在讲web开发web开发,那到底什么是web呢? 如果你正在学习python三大主流web框架,那这些你必须要知道了 软件开发架构: C/S架构:Client/Server    客户端与服务端 ...

  2. Lua开发环境

    下载并解压Lua源码: wget http://www.lua.org/ftp/lua-5.1.5.tar.gz tar zxvf lua-5.1.5.tar.gz cd lua-5.1.5 打开Ma ...

  3. P1541 乌龟棋(动态规划)

    (点击此处查看原题) 题意 此处有n个位置,记为1~n,每个位置上都对应一个权值,乌龟从编号为1的位置出发,利用m张爬行卡片到达位置n,爬行卡牌有四种,分别可以让乌龟移动1,2,3,4步,并保证将m张 ...

  4. flask 接收参数小坑

    前后端分离: 1.get方式: items = dict(request.args.items()) app_name = items["app_name"].strip() 或 ...

  5. peewee无外键连接

    # 参考:https://blog.csdn.net/weixin_34273479/article/details/87587183 res = Name.select(Name, User.xxx ...

  6. Codeforces 1236E. Alice and the Unfair Game

    传送门 首先可以注意到对于固定的起点 $S$ ,它最终能走到的终点一定是一段区间 这个用反证法容易证明,假设合法区间存在断点,这个点左右都可以作为终点 那么分成区间断点在起点左边和起点右边讨论一下即可 ...

  7. 《深入实践C++模板编程》之五——容器与迭代器

    1.容器的定义 容器:专门用于某种形式组织及存储数据的类称为“容器”.   2.容器与迭代器 迭代器:封装了对容器虚拟数据序列的操作并按约定提供统一界面以遍历容器内容的代理类即为迭代器.   举例理解 ...

  8. java写webservice接口

    有一个需求:要求根据设备mac和终端设备类型来查询设备库存状态. 接口协议是采用webservice协议,信息交互方式为xml格式信息 输入参数存放到XML各个节点下,并转为一个String,作为接口 ...

  9. 百度URL链接中文转码

    百度搜索链接规则为: http://www.baidu.com/s?wd=[搜索词目]&cl=3 有多个搜索词通过加号进行链接: http://www.baidu.com/s?wd=keywo ...

  10. Oracle学习笔记:一个简单的行转列例子

    一个简单的行列转换例子,原始数据. create table temp_cwh_student ( name ), subject ), score ) ) select * from temp_cw ...