列表生成式即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]怎么做

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

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']

for循环其实可以同时使用两个甚至多个变量,比如dictitems()可以同时迭代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']

最新文章

  1. linux shell 中的sleep命令
  2. 纯css3圆形从中心向四周扩散动画效果
  3. HTML导航栏
  4. 记录下Sublime Text Mac版的快捷键【转】
  5. Nginx中FastCGI配置优化
  6. /proc/sysrq-trigger该文件能做些什么事情-转载
  7. 利用Yii框架中的collections体验PHP类型化编程
  8. C“中断” 与 JS“异步回调” 横向对比
  9. PHP get_class_methods函数用法
  10. 毫无保留开源我写的:IOS Android Ipad 多点触摸通用js 库
  11. WORD2003电子签名插件(支持手写、签章)
  12. jsoup 获取指定页面的所有链接(需后续完善)
  13. 浅谈iOS IPv6-only 新规
  14. 用JQUERY的deferred异步按顺序调用后端API
  15. 三分钟读懂Oracle数据库容灾架之DataGuard
  16. poj 1860 (Bellman_Ford判断正环)
  17. openGl学习之加入颜色
  18. ASP.NET Web API和ASP.NET Web MVC中使用Ninject
  19. 201521123105 第9周Java学习总结
  20. Windows系统下使用Jenkins 自动发布 .NET core到Linux平台下Docker

热门文章

  1. Nginx 笔记(二)nginx常用的命令和配置文件
  2. 高性能可扩展mysql 笔记(三)Hash分区、RANGE分区、LIST分区
  3. Java实现 蓝桥杯VIP 算法训练 最大质因数(暴力)
  4. Java实现 LeetCode 710 黑名单中的随机数(黑白名单)
  5. Java实现 LeetCode 638 大礼包(阅读理解题,DFS)
  6. Java实现 LeetCode 64 最小路径和
  7. java实现第五届蓝桥杯猜年龄
  8. 团体天梯赛L1-041.寻找250
  9. 构造函数继承与class继承
  10. Go语言圣经[中文版]