PEP 202 – 列表推导

猫勺猫勺 04-23 68 阅读 0 评论

介绍

PEP 描述了 Python 的拟议语法扩展,列表 理解。

建议的解决方案

建议允许使用 for 和 if 子句。它们将以相同的方式嵌套循环和 if 语句嵌套 现在

理由

列表推导提供了一种更简洁的方式来创建各种情况下的列表 其中 和 和/或嵌套循环当前将使用。map()filter()

例子

>>> print [i for i in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> print [i for i in range(20) if i%2 == 0]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

>>> nums = [1, 2, 3, 4]
>>> fruit = ["Apples", "Peaches", "Pears", "Bananas"]
>>> print [(i, f) for i in nums for f in fruit]
[(1, 'Apples'), (1, 'Peaches'), (1, 'Pears'), (1, 'Bananas'), 
(2, 'Apples'), (2, 'Peaches'), (2, 'Pears'), (2, 'Bananas'), 
(3, 'Apples'), (3, 'Peaches'), (3, 'Pears'), (3, 'Bananas'),
(4, 'Apples'), (4, 'Peaches'), (4, 'Pears'), (4, 'Bananas')]
>>> print [(i, f) for i in nums for f in fruit if f[0] == "P"]
[(1, 'Peaches'), (1, 'Pears'), 
(2, 'Peaches'), (2, 'Pears'), 
(3, 'Peaches'), (3, 'Pears'), 
(4, 'Peaches'), (4, 'Pears')]
>>> print [(i, f) for i in nums for f in fruit if f[0] == "P" if i%2 == 1]
[(1, 'Peaches'), (1, 'Pears'), (3, 'Peaches'), (3, 'Pears')]
>>> print [i for i in zip(nums, fruit) if i[0]%2==0][
(2, 'Peaches'), (4, 'Bananas')]

参考实现

列表推导式在 2.0 版中成为 Python 语言的一部分, 记录在 中。

BDFL声明

  • 上面建议的语法是正确的。

  • 该表格是不允许的;一个是需要写的。[x, y for ...][(x, y) for ...]

  • 窗体嵌套,最后一个索引 变化最快,就像嵌套的 for 循环一样。[... for x... for y...]


The End 微信扫一扫

文章声明:以上内容(如有图片或视频在内)除非注明,否则均为腾龙猫勺儿原创文章,转载或复制请以超链接形式并注明出处。

本文作者:猫勺本文链接:https://www.jo6.cn/post/88.html

上一篇 下一篇

相关阅读

发表评论

访客 访客
快捷回复: 表情:
评论列表 (暂无评论,68人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码