前言

python里面[]表示一个列表,快速生成一个列表可以用range()函数来生成。

对列表里面的数据进行运算和操作,生成新的列表最高效快速的办法,那就是列表生成式了。

range()

1.一个连续的数字类型列表,比如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用range生成

# coding:utf-8

# a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

b = range(1, 11)
print(b) # 结果 range(1, 11)
print(type(b))
print(list(b)) # 转list

2.python3直接打印b会显示range(1, 11)对象,并不是直接显示应该列表,如果想显示列表,可以用list()转下

列表生成式

1.如果想对列表里面的数据进行运算后重新生成一个新的列表,如[11, 22, 33 ... 1010],按平常思维就是先定义一个列表c,然后for循环挨个运算,算完了再append添加到c,最后c就是新的列表了

# 对列表数平方

b = range(1, 11)
c = []
for i in b:
c.append(i*i)
print(c) # 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.接下来看看用列表生成式如何去实现

# 对列表数平方

b = range(1, 11)
c = [x*x for x in b]
print(c) # 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3.列表生成式语法是固定的,[]里面for 前面是对列表里面数据的运算操作,后面跟平常for循序一样遍历去读取。运行后会自动生成新的列表

带if判断

1.如果想对一个列表里面的数据筛选,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的数,按正常思维可以for循环挨个判断,符合条件的放到新的列表

c = [1, 3, -3, 4, -2, 8, -7, 6]
d = []
for i in c:
if i > 0:
d.append(i) # 添加到列表d
print(d) # 结果:[1, 3, 4, 8, 6]

2.接下来可以看看列表生成式,写出更加简洁优雅的代码,快速高效!

# 提取大于0的数
c = [1, 3, -3, 4, -2, 8, -7, 6]
d = [x for x in c if x > 0]
print(d) # 运行结果[1, 3, 4, 8, 6]

多个参数

1.前面列表生成式都只传一个参数x,如果有两个列表如何去运算呢?

a = [1, 2, 3, 4, 5]

b = ["a", "b", "c", "d", "e"]

如何得出c = ["a1", "b2", "c3", "d4", "e5"]

# coding:utf-8

a = [1, 2, 3, 4, 5]
b = ["a", "b", "c", "d", "e"] # 多个参数列表生成式
c = [str(x)+str(y) for x, y in zip(b, a)]
print(c) # 结果:['a1', 'b2', 'c3', 'd4', 'e5']

2.列表生成式的语法是非常优雅的,学会了可以少写很多代码。理解起来也并不难,多联系几次就能熟练掌握了。

python自动化交流 QQ群:779429633

python笔记21-列表生成式的更多相关文章

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

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

  2. python 迭代 及列表生成式

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

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

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

  4. 【Python】学习笔记之列表生成式

    列表生成式 主要用于生成较为复杂的列表 常用用法 >>> [x * x for x in range(5) if x % 3 !=1 ] [0, 4, 9] #返回除以3余数不为1的 ...

  5. python基础:列表生成式和生成器

    列表生成式(List Comprehension) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成 list ...

  6. python中的列表生成式

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

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

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

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

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

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

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

随机推荐

  1. HDU 4553 约会安排(线段树区间合并+双重标记)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4553 题目大意:就是有三种操作: ①DS x,安排一段长度为x的空闲时间跟屌丝一起,输出这段时间的起点 ...

  2. 以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建

    在上一篇博客中,讲述了基于docker怎么搭建一个go-ethereum节点.作为开发人员,如果只是单纯的拥有一个Full node,还无法满足正常的开发.比如说,进行转账交易,你要考虑是否拥有一定的 ...

  3. Error: could not open `C:\Java\jre7\lib\i386\jvm.cfg

    打开eclipse时出现Error: could not open `C:\Program Files\Java\jre7\lib\i586\jvm.cfg’) 删除 c:\windows\syste ...

  4. C# 6.0 新特性 (一)

    概述 尽管 C# 6.0 尚未完成,但现在这些功能正处于接近完成的关键时刻.自 2014 年 5 月发布文章“C# 6.0 语言预览版”(msdn.microsoft.com/magazine/dn6 ...

  5. 【JAVAWEB学习笔记】22_ajax:异步校验用户名和站内查询

    Js原生Ajax和Jquery的Ajax 学习目标 案例1-异步校验用户名是否存在 案例2-站内查询 一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应 ...

  6. export导出.xls时,在火狐的情况下出现表名乱码的情况的解决方案

    response.setContentType("application/octet-stream; charset=utf-8");fileName = exportDataDt ...

  7. EL和JSTL的关系

    JSTL与EL的关系:EL的功能是有限的,去集合只能取特定的某一个元素,如果遍历或循环就不行了,或者添加一些条件分支判断也不行,或做一些格式化,比如日期的格式化,数字的格式化,也不行,所以要做这些功能 ...

  8. am335xSD卡启动--文件系统制作

    1.网上下载busybox工具https://busybox.net/downloads/ 2.根据此文章提示制作自己的跟文件系统 链接: https://pan.baidu.com/s/1bp6GK ...

  9. openstack多region配置

    实验 A机器 10.64.8.171     RegionOne B机器 10.64.8.142     RegionTwo         Keytson(这个组件随便放在哪台都可以) openst ...

  10. PHP函数声明(二)

    PHP的变量的范围 1.局部变量:在函数中声明的变量就是局部变量,只能在自己的函数内部使用. 2.全局变量:函数外声明,在变量声明以后的,直到整个脚本结束前都可以使用,包括在函数中和{}中都可以使用 ...