本篇将介绍Python的列表生成式,更多内容请参考:Python列表生成式

列表生成式即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,]

但是要生成[1×1, 2×2, 3×3, 4×4,..., 10×10]怎么做?方法一是循环:

>>>L = []

>>>for x in range(1, 11):

L.append(x * x)

>>>L

[1, 4 ,9 ,16, ..., 100]

但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:

>>>[x*x for x in range(1, 11)]

[1, 4, 16, 25, 36, 49, 64, 81, 100]

写列表生成式时,把要生成的元素x * x放在前面,后面跟for循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。

for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:

>>>[x*x for x in range(1, 11) if x % 2 == 0]

[4, 16, 64, 100]

还可以使用两层循环,还可以生成全排列:

>>>[m+n for m in 'ABC' for n in 'XYZ']

['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

三层和三层以上的循环就很少使用了。

运用列表生成式,可以写出非常简洁的代码。例如,列出当前目录下的所有文件和目录名,可以通过一行代码实现:

>>>import os #导入os模块

>>>[d for d in os.listdir('.')] #os.listdir可以列出文件和目录

for循环其实可以同时使用两个甚至多个变量,比如dict的items()可以同时迭代key和value:

>>>d = {'X':'A', 'y':'B', 'z':'C'}

>>>for k, v in d.items():

print(k, '=', 'v')

y = B

x = A

z = C

因此,列表生成式也可以使用两个变量来生成list:

>>>d = {'x':'A', 'y':'B', 'z':'C'}

>>>[k+= ' ='+v for k, v in d.items()]

['y=B', 'x=A', 'z=C']

最后把一个list中所有的字符串变成小写:

W WW.002pc .COM对《python要怎么保存python生成式》总结来说,为我们学习Python很实用。>>>L = ['Hello', 'World', 'IBM', 'Apple']

>>>[s.lower() for s in L]

['hello', 'world', 'ibm', 'apple']

复杂表达式

1、使用for循环的迭代不仅可以迭代普通的list,还可以迭代dict。

假设有如下的dict:

d = {'Adam':95, 'Lisa':85, 'Bart':59}

完全可以通过一个复杂的列表生成式把它变成一个HTML表格:

tds = ['

%s%s'%(name, score) for name, score in d.items()]

print('

print('

NameScore')

print '\n'.join(tds)

print('

')

注意:字符串可以通过%进行格式化,用指定的参数替代%s。字符串的join()方法可以把一个list拼接成一个字符串。

2、在生成的表格中,对于没有及格的同学,请把分数标记为红色。

d = {'Adam':95, "Lisa":85, "Bart":59}

def generate_tr(name, score):

if score < 60:

return '

%s%s' %s(name, score)

return '

NameScore'%(name, score)

tds = [generate_tr(name, score) for name, score in d.items()]

print('

print('\n'.join(tds))

print('

')

3、条件过滤

列表生成式的for循环后面还可以加上if判断,例如:

>>>[x * x for x in range(1, 11)]

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

如果我们只想要偶数的平方,不改动range()的情况下,可以加上if来筛选:

>>>[x*x for x in range(1, 11) if x % 2 == 0]

[4, 16, 64, 100]

有了if条件,只有if判断为True的时候,才把循环的当前元素添加到列表中。

编写一个函数,它接收一个list,然后把list中的所有字符串变成大写后返回,非字符串元素将被忽略。

[x.upper() for x in L if isinstance(x, str)]

参考

列表生成式--学习笔记

廖雪峰-生成式

更多:python要怎么保存python生成式

https://www.002pc.comhttps://www.002pc.com/python/3907.html

你可能感兴趣的生成式,python

No alive nodes found in your cluster

0踩

0 赞

python怎么样另存为_python要怎么保存python生成式相关推荐

  1. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  2. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  3. python cms模板_python基础-第一个python程序

    前言 上一章中,我们介绍了怎么去安装python环境,作为我们入门python的先决条件,今天,我们通过编写第一个python应用程序的方式,正式进入python的大门. 首先,关于python,有两 ...

  4. python的认识_Python学习之认识python

    Python 版本 ​Python 从1989年诞生的第一个版本,到目前为止,存在 python2 和 python3 两个版本,并且两个版本不兼容.目前python 程序中 python2 占比依然 ...

  5. 简述python的优点_Python是什么及Python的优点和缺点

    前面提到,编程语言有"高低"之分,而高级语言又有诸多版本,比如 C .C++.Java 等,「Python」也是其中之一.Python 语言算得上一门"古老"的 ...

  6. [转载] 递归函数python基例_python递归函数详解 python 递归函数使用装饰器

    参考链接: Python递归 移动宽带检查显示 CRM,radius状态不一致是怎么回事啊?您可以把电信宽带猫等设备重启试一下,如果仍然不行,可以拨打10000号请工作人员帮您查看.处理. 电信宽带诊 ...

  7. python pyplot安装_Python学习-windows安装Python以及matplotlib.pyplot包

    引文: Python自带了许多的库文件,其中matplotlib可以做出类似于MATLAB和R语言一样绘制出很好的图形功能,下面介绍下怎么安装这个包,因为自己安装的时候很多地方都出错了. 环境: Wi ...

  8. python中文免费版_Python官方免费版下载|Python中文版 V3.8.0 -推背图下载站

    Python中文版是一款便捷的计算机程序设计语言,Python中文版它能够帮助程序员快速编写代码,并且脚本运行速度非常快,中内置丰富的类库,随着功能的不断更新,添加越来越多的新功能,它能够处理的任务越 ...

  9. 开源的python有限元软件_Python与有限元--基于Python编程的有限元分析及应用扩展...

    第1章  编程基础--Python.Numpy.Matplotlib简介 1.1  Python简介 1.1.1  什么是Python 1.1.2  Python及其库安装 1.1.3  Python ...

最新文章

  1. python -m参数
  2. webpack中loader加载器配置postCss自动添加CSS兼容前缀
  3. java范例_Java范例集锦(一)
  4. 福音!微信个人公众号可以改名了!
  5. PyCharm点击设置没反应,无法进行设置
  6. python浅拷贝深拷贝
  7. 如何在Windows上安装Python
  8. 2021年SWPUACM暑假集训day2并查集算法
  9. 【论文解读】“推荐系统”加上“图神经网络”
  10. python_flask框架Ubuntu16.04下环境搭建
  11. 在ASP.NET 2.0中实现URL重写
  12. 鸿蒙系统下载 绿色,WiseFolderHider(文件夹加密软件)4.3.7
  13. 兄弟连LAMP环境搭建
  14. 计算机在档案部门应用范围,计算机在档案管理中的应用
  15. 行业观察(一)| 从渠道为王到数据为王——浅谈服装零售企业的数字化转型
  16. 栈与队列篇:347. 前 K 个高频元素(难度 中等)
  17. 如何使用python编程抢京东优惠券 知乎_小猿圈Python之实现京东秒杀功能技巧
  18. 头条案例登录注册功能
  19. Spring Boot -- JPA
  20. 笔记本卡顿不流畅是什么原因_笔记本卡顿不流畅是什么原因_笔记本电脑卡顿不流畅如何解决-win7之家...

热门文章

  1. C# 观察者模式 以及 delegate 和 event
  2. 使用 Angular
  3. 剑网服务器维护,12月31日服务器例行维护公告
  4. java 物理内存_聊聊Java中的内存
  5. 【GIS风暴】GIS拓扑关系原理详解
  6. Android之All children of ConstraintLayout must have ids to use ConstraintSet
  7. linux之让终端支持C++11/14编译cpp文件
  8. C++之invalid initialization of non-const reference of type ‘int’ from an rvalue of type ‘int’
  9. 【C语言简单说】十:小结
  10. html td显示隐藏,显示/隐藏Html TR/TD