Python实用笔记 (9)高级特性——列表生成式
2024-09-07 15:07:16
列表生成式即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
循环其实可以同时使用两个甚至多个变量,比如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']
最新文章
- linux shell 中的sleep命令
- 纯css3圆形从中心向四周扩散动画效果
- HTML导航栏
- 记录下Sublime Text Mac版的快捷键【转】
- Nginx中FastCGI配置优化
- /proc/sysrq-trigger该文件能做些什么事情-转载
- 利用Yii框架中的collections体验PHP类型化编程
- C“中断” 与 JS“异步回调” 横向对比
- PHP get_class_methods函数用法
- 毫无保留开源我写的:IOS Android Ipad 多点触摸通用js 库
- WORD2003电子签名插件(支持手写、签章)
- jsoup 获取指定页面的所有链接(需后续完善)
- 浅谈iOS IPv6-only 新规
- 用JQUERY的deferred异步按顺序调用后端API
- 三分钟读懂Oracle数据库容灾架之DataGuard
- poj 1860 (Bellman_Ford判断正环)
- openGl学习之加入颜色
- ASP.NET Web API和ASP.NET Web MVC中使用Ninject
- 201521123105 第9周Java学习总结
- Windows系统下使用Jenkins 自动发布 .NET core到Linux平台下Docker