python代码,如何利用推导式获得可用数据集?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文说一下python
的一个高级语法:推导式。其实就是用一种特殊写法获得一系列的数据集合的功能。目前来说,似乎只在python
这边苏南大叔看到了这样的功能。那么,其它高级语言里面,是不是也有这样类似的写法呢?
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文主要介绍推导式,包括:列表(list)推导式,字典(dict)推导式,集合(set)推导式。当然,还有其它的推导式使用方式,但不是本文中所讨论的内容。本文测试环境:win10
,python@3.6.8
。
苏南大叔个人理解着:就是用表达式来定义相关类似数组的集合,存在着一个隐式的运算过程。
基本情况
列表推导式的基本格式,如下:
_list = [ expression for_loop_expression if condition ]
_set = { expression for_loop_expression if condition }
_tuple= tuple(( expression for_loop_expression if condition ))
_dict = { key_expr:value_expr for_loop_expression if condition }
expression
函数或者表达式,用于加工集合中的某个成员。for_loop_expression
,用于产生集合成员的初始值。if condition
,用于数据筛选。如果为真,则从for
流程转到expression
流程。
测试代码一
测试代码如下:
_test = range(0, 10)
def fn(i):
return i*i
_list = [i*i for i in _test if i % 2 == 0]
_set = {fn(i) for i in _test }
_tuple = tuple((i*i for i in _test if i % 2 ==0))
_map = map(fn,_test)
- 其中的列表
list
和集合set
的推导式,中规中矩。 - 对于
tuple
元组,使用()
表述得到的是个生成式,然后使用了强转。 - 对于
map
类型,这个可能不叫做推导式了,但是表现形式上和推导式非常类似。
如果这些代码使用普通的方式来书写的话,可能是下面的这个样子:
_list = []
for i in _test:
if i % 2 == 0:
_list.append(i)
print(_list)
测试代码二
下面的是dict
字典推导式的例子:
_info = {'sunan': {'grade': "A",},'sunan2': {'grade': "B",}}
_dict = {o:d for o,d in _info.items() if d['grade'] == "A"}
print(_dict, type(_dict))
相关文章
- https://newsn.net/say/python-try-except.html
- https://newsn.net/say/python-exception.html
- https://newsn.net/say/python-def.html
- https://newsn.net/say/python-decorators.html
综述
推导式是一种比较先进的写法,用常见的方式也是可以实现相似功能的。更多python
的经验文章,请点击下面的链接:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。