感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下。
以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看。

列表生成式
列表生成式即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]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:
>>> L = []
>>> for x in range(1, 11): ... L.append(x * x) ...
>>> L [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
>>> [x * x for x in range(1, 11)] [1, 4, 9, 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, 36, 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可以列出文件和目录 ['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']
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中所有的字符串变成小写:
>>> L = ['Hello', 'World', 'IBM', 'Apple'] >>> [s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']

转载于:https://www.cnblogs.com/william126/p/6991823.html

Python自学笔记-列表生成式(来自廖雪峰的官网Python3)相关推荐

  1. python学习笔记---IO编程【廖雪峰】

    IO编程 ​ IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口 ...

  2. python 基础 廖雪峰_廖雪峰在官网自学python基本类型,基础

    没啥好说的直接上代码 # -*- coding:utf-8 -*- height = 1.72 weight = 88 BMI = weight/(height*height) if BMI < ...

  3. java语言基础-面向对象编程-方法(廖雪峰老师官网学习记录)

    Java是一种面向对象的编程语言. 面向对象编程,英文是Object-Oriented Programming,简称OOP. 面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方 ...

  4. python自学笔记

    https://www.cnblogs.com/secondtonone1/p/6796323.html 恋恋风辰 python自学笔记(一) 我没学过python,通过网上和一些图书资料,自学并且记 ...

  5. Python自学笔记10:实操案例七(根据星座测试性格特点、模拟12306火车订票下单)

    Python自学笔记10:实操案例七(根据星座测试性格特点.模拟12306火车订票下单) 网课传送门:https://www.bilibili.com/video/BV1Sw411Z779?p=157 ...

  6. Python自学笔记——视频课程来自小甲鱼零基础入门学习python

    Python自学笔记 细枝末节 / 浮点除 // 地板除 字符串 apitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) ...

  7. Python自学笔记9:实操案例六(千年虫,购物流程)

    Python自学笔记9:实操案例六(千年虫,购物流程) 网课传送门:第155,156讲,https://www.bilibili.com/video/BV1Sw411Z779?p=155 1.千年虫 ...

  8. Python(自学笔记1)

    文章目录 一.数据类型 二.字符串 三.列表 四.用python写一个游戏 五.改进小游戏 一.数据类型 整型 布尔类型:true/false(bool) 浮点型 记法 ==Int()==括号内必须与 ...

  9. Python自学笔记5:实操案例二(输出出版图书信息、《红楼梦》五位人名、图书音像勋章、身体指标)

    Python自学笔记4:实操案例二(输出出版图书信息.<红楼梦>五位人名.图书音像勋章.身体指标) 1.输出出版图书信息 这个没啥难度,就是定义变量然后输出,注意调整格式就行 book_n ...

最新文章

  1. php返回null接收的是空字符串,求大神救命!!php接收到是空的字符串
  2. Delphi的四舍五入函数
  3. Redis中的数据迁移
  4. SpringMVC与Ajax交互
  5. windows服务器下com6僵尸***删除
  6. composer-安装插件包
  7. Python3错误和异常
  8. 虫食算(洛谷-P1092)
  9. AMBERT!超越BERT!多粒度token预训练语言模型
  10. 编译器为C++ 空类自动生成的成员函数
  11. activity调用fragment的方法_Fragment 的现在以及未来
  12. 思科下一代模拟器EVE-NG做一个不同VLAN互通实验
  13. 一种巧妙的解决方案,一键恢复Win11中消失不见的“Microsoft Store”微软应用商店
  14. amd cpu排行_2020英特尔cpu排行_2019 cpu天梯图 intel和amd cpu性能排行
  15. poi-tl导出word;自定义列表序号和表格宽度,表格合并,自定义标题,更新目录
  16. HiBit Uninstaller(电脑软件强力卸载工具)官方中文版V2.6.20 | hibituninstaller怎么样? | 电脑软件卸载不干净怎么办?
  17. 为什么说社群团购时代来临了?
  18. GetLastError 函数错误信息 代码大全
  19. Base64编码的原理及实现(源码)
  20. python int() round() floor()函数的比较

热门文章

  1. linux用户变量设置位置,linux---位置参数
  2. 计算机开启时提示键盘错误,电脑开机出现异常提示keyboard not found的故障原因及解决方法_电脑故障...
  3. linux docker运行目录,Linux更改Docker运行根目录的方法
  4. 能写出HTML语言框架结构,HTML语言—框架最新.ppt
  5. 在OpenCV中利用卷积进行图像滤波
  6. 2021年春季学期-信号与系统-第十二次作业参考答案-第一小题
  7. 天体摇摆仪的工作原理
  8. 无中生有 : 对称方波中的二次谐波
  9. windows下cd无法切换到指定目录下
  10. oracle视图能增删改,oracle视图的增删改