python推导式

标签: python基础 推导式 python练习
3人阅读 评论(0) 收藏 举报
分类:

Python推导式(列表、字典、集合推导式)

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:

  • 列表(List)推导式
  • 字典(Dict)推导式
  • 集合(Set)推导式

1.列表推导式

1.1 使用[]生成List

基本格式:

[out_exp_res for out_exp in input_list if out_exp == 2]
  • out_exp_res:  列表生成元素表达式,可以是有返回值的函数。
  • for out_exp in input_list:  迭代input_list将out_exp传入out_exp_res表达式中。
  • if out_exp == 2:  根据条件过滤哪些值可以。

案例1:

In [1]: [x for x in range(10)]
Out[1]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [2]: [x for x in range(10) if x % 2 ==0]
Out[2]: [0, 2, 4, 6, 8]

案例2:

In [3]: def f(x):
   ...:     return x * x
   ...:

In [4]: [f(x) for x in range(10)]
Out[4]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
1.2 使用()生成generator

将俩表推导式的[]改成()即可得到生成器。

In [5]: list = (x for x in range(10) if x % 2 ==0)

In [6]: list
Out[6]: <generator object <genexpr> at 0x0000018C86C88FC0>

In [7]: for i in list:
   ...:     print(i)
   ...:
0
2
4
6
8

2. 字典推导式

字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明: 快速更换key和value:

In [10]: dic = {'a':10, 'b':20}

In [11]: n_dic = {v:k for k,v in dic.items()}

In [12]: n_dic
Out[12]: {10: 'a', 20: 'b'}

3. 集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。 例子:

In [13]: set1 = {x for x in range(10)}

In [14]: set1
Out[14]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
查看评论

python的各种推导式(列表推导式、字典推导式、集合推导式)

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持: 列表(li...
  • chengxuyuanyonghu
  • chengxuyuanyonghu
  • 2018-01-10 18:29:50
  • 180

python中的链表推导式

python中的链表推导式 博客分类: Python Python  Python代码   num=[1,2,3]    myvec=[[x,x*2] f...
  • zhangfeng1133
  • zhangfeng1133
  • 2016-05-25 12:55:16
  • 1618

python——双重列表推导式+函数,优雅而强大

看书的过程中,看到了这种精妙(书里译文如此)的用法。列表推导式+函数。...
  • chenKFKevin
  • chenKFKevin
  • 2017-07-07 18:33:04
  • 2514

『Python』序列学习总结之五 ——列表推导式的一些应用

最近在工作中为了减少代码的行数而开始使用列表推导式, 结果非常好, 七八行的代码只需要用一行代码就能够写完, 虽然逻辑对于不怎么使用列表推导式的人来说会比较困难, 但是习惯之后也相当容易。 因此强烈推...
  • Sbtgmz
  • Sbtgmz
  • 2016-04-29 17:54:30
  • 1691

Python2.7列表推导式、字典推导式、生成器示例

print "\n+++++++列表推导式++++++++" auto_list = [x for x in "Good evening!"] # 列表推导式1 print "列表推导式1:\t",...
  • qq_31598113
  • qq_31598113
  • 2017-05-05 16:46:30
  • 1113

python数据处理之列表、集合、字典推导式

1.列表:   [expr for item in collection if condition]   举例: >>> result = [] >>> [result.append(item) fo...
  • u010668907
  • u010668907
  • 2016-04-21 23:14:14
  • 2395

python的推导式(实用)

每次看大牛的代码很奇怪,比如T=[(x,y) for x in range(5) if x%2==0 for y in range(5) if y %2==1] 这是什么鬼,一个变量T为什么搞得这么拥...
  • langb2014
  • langb2014
  • 2016-11-14 10:03:52
  • 4187

Python中的嵌套列表推导式

python列表推导式处理嵌套列表
  • qq_35205648
  • qq_35205648
  • 2017-12-25 15:58:44
  • 268

Python列表推导式和生成器表达式

和列表一样,列表推导式也采用
  • Ethan706
  • Ethan706
  • 2014-10-23 10:58:24
  • 3512

python之列表推导式

转自:http://blog.chinaunix.net/uid-28631822-id-3488324.html Python语言以简易明了著称,但初次学习Python,却被很多语法搞的昏头涨...
  • chienchia
  • chienchia
  • 2014-11-17 10:00:23
  • 2449
    个人资料
    等级:
    访问量: 634
    积分: 243
    排名: 30万+
    文章存档