python 中的解析
Python 支持各种解析 (comprehension) 操作, 比如列表解析, 集合解析, 元组解析, 字典解析. 它们根据某些元素来创建 (推导) 出一个新的列表, 集合, 元组, 字典等. 所以有的地方也称为推导, 比如列表推导, 集合推导等.
下面是一个列表解析的示例:
- >>> [ i*2 for i in range(10) if i % 2 == 0 ]
- [0, 4, 8, 12, 16]
这里是列表解析, 因为使用的中括号[ xxxx ], 它表示根据条件推导出一个新的列表. Python 中几种内置类型的解析规则为:
如果使用的是中括号, 表示列表解析
如果使用的是大括号, 表示集合解析
如果使用的是大括号, 且里面的元素是 key:value 模式, 表示字典解析
注意: 如果使用的是括号, 表示的是生成器表达式, 而不是解析.
例如:
- # 集合解析
- >>> { i*2 for i in "abcd"}
- {'aa', 'cc', 'dd', 'bb'}
- # 字典解析
- >>> { k:v for k,v in zip(("one","two","three"),(1,2,3)) }
- {'one': 1, 'two': 2, 'three': 3}
- >>> { k: k*2 for k in "abcd" }
- {'a': 'aa', 'b': 'bb', 'c': 'cc', 'd': 'dd'}
在学习过程中有什么不懂得可以加我的
python 学习交流扣扣 qun,***
群里有不错的学习视频教程, 开发工具与电子书籍.
与你分享 python 企业当下人才需求及怎么从零基础学习好 python, 和学习什么内容
当然, Python 中还有其它解析模式.
数学概念中的解析
计算机语言中的解析来自于数学概念中的集合描述(对应于集合解析). 如下图:
将此与下面的列表解析进行对应:
[ i * 2 for i in range(10) if i % 2 == 0 ]
其中:
x ∈ N 表示的是装元素的容器, 这个容器里的元素是解析时被迭代的对象
这对应于列表解析中的 range(10), 对于 Python 来说, 只要是可迭代的数据对象, 都可以作为元素的提供容器
x 是变量, 是容器中的元素
对应于列表解析中的 i
x2> 3 表示的是谓词, 是可选的条件判断式, 用来筛选解析过程中的符合条件的元素
这对应于列表解析中的 if i % 2 == 0, 注意, 谓词部分是可选的
2 * x 表示的是外部表达式, 用来生成新的列表 / 集合 / 字典 / 元组中的元素
对应于列表解析中的 i * 2
{}意味着外部表达式的元素所存放的容器是集合容器
对应于列表解析中的[], 表示新生成的元素是列表中的元素
觉得文章还可以的话不妨收藏起来慢慢看, 有任何意见或者看法欢迎大家评论!
来源: http://www.bubuko.com/infodetail-3254179.html