Python

Python 推导式

2019-05-02  本文已影响0人  Rethink

Python v3.7.0

推导式(comprehensions),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。

列表推导式

格式:

[expression for item in iterable if condition]
    expression :列表生成的值,也可以是表达式
    for item in itreable:将item传入并迭代iterable
    if condition:条件表达式

例子:

from functools import reduce

var = [i for i in range(10) if i % 2 == 0]
sum = reduce(lambda x, y: x + y, [i for i in range(10) if i % 2 == 0])


print(var, sum, sep='\n')

>>>
[0, 2, 4, 6, 8]
20

字典推导式

字典推导式的使用方法和列表推导式是类似的,只需要把[] 替换成{} .

case = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
case_revesed = {v: k for k, v in case.items()}
print(case_revesed)

>>>
{'Zara': 'Name', 7: 'Age', 'First': 'Class'}

集合推导式

集合推导式,使用格式和字典推导式完全相同,用来生成集合类型的数据。

squared = {x ** 2 for x in [1, 1, 2]}
print(multiples, type(multiples), tuple(multiples), sep='\n')
>>>
{1, 4} <class 'set'>

生成器推导式

生成器推导式和列表推导式差不多,只是由中括号[]变成了括号(),但这并不是元组推导式,元组没有推导式。它返回一个可迭代对象,可以根据需要将他转化为列表或者元组。

multiples = (i for i in range(30) if i % 3 is 0)
print(multiples, type(multiples))

>>>
<generator object <genexpr> at 0x10e784408>
<class 'generator'>
(0, 3, 6, 9, 12, 15, 18, 21, 24, 27)

To be continued...

上一篇下一篇

猜你喜欢

热点阅读