俄罗斯贵宾会-俄罗斯贵宾会官网
做最好的网站

Python 的几种推导式

推导式 comprehensions(又称解析式):是 Python 中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括:

本文实例讲述了Python列表推导式、字典推导式与集合推导式用法。分享给大家供大家参考,具体如下:

1. 列表推导式
2. 字典推导式
3. 集合推导式

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

对以上的三种推导式分别举例分析:

列表(list)推导式
字典(dict)推导式
集合(set)推导式

一、列表推导式


一、列表推导式

1、使用 []俄罗斯贵宾会, 生成 list

例如:

list = [ i for i in range(20) if i%2 == 0 ]
print(list)

#output:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

1、使用[]生成list

2、使用 () 生成 generator

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

generator = ( i for i in range(20) if i%2 == 0 )
print(generator)

#output:<generator object <genexpr> at 0x0000000000B5CA40>

通过 next() 就可以依次调用生成器中的数据。

基本格式

二、字典推导式


存在 key 和 value,使用的是 {}。

dic = { "A":1, "b":2, "C":3, "d":4 }
new_dic = { k:v for k,v in dic.items() if k <= 'a'}
print(new_dic)

#output:{'C': 3, 'A': 1}

variable = [out_exp_res for out_exp in input_list if out_exp == 2]

三、集合推导式


它跟列表推导式也是类似的。区别在于它使用大括号 {},并且数据是无序和无重复的。

Set = { i**2 for i in [1,2,3,4,5,3] }
print(Set)

#output:{16, 1, 4, 9, 25}

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

例一:

multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

例二:

def squared(x):
  return x*x
multiples = [squared(i) for i in range(30) if i % 3 is 0]
print multiples
# Output: [0, 9, 36, 81, 144, 225, 324, 441, 576, 729]

2、使用()生成generator

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

本文由俄罗斯贵宾会发布于编程,转载请注明出处:Python 的几种推导式

您可能还会对下面的文章感兴趣: