python列表推导式格式_Python列表推导式

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

列表(list)推导式

字典(dict)推导式

集合(set)推导式

简介

列表推导是一种表达for-loop的python方式,该代码以单行代码附加到列表。

[i for i in range(10) if i % 2 == 0]

相同逻辑的for循环

re = []

for i in range(10):

if i % 2 == 0:

re.append(i)

典型格式

组成部分

输出(可以是字符串、数字、列表或放在列表中的任何对象)

声明

条件过滤(可选)

[[output value] for (i in iterable) if(filter conditions)]

例子

简单列表推导式

问题陈述

将每个数字平方,aList然后将结果存储为列表。

for循环

aList = [1,2,3,4,5]

re = []

for i in aList:

re.append(i**2)

列表推导式

re = [i**2 for i in [1, 2, 3, 4, 5]]

带条件过滤的列表推导式

问题陈述

将aList中的偶数平方将结果存储在新列表中。

for循环

aList = [1,2,3,4,5]

re = []

for i in aList:

if i % 2 == 0:

re.append(i**2)

列表推导式

re = [i**2 for i in [1,2,3,4,5] if i % 2 == 0]

if-else的列表推导式

问题陈述

将aList中的偶数平方,奇数立方将结果存储在新的列表中。

for循环

aList = [1,2,3,4,5]

re = []

for i in aList:

if i % 2 == 0:

re.append(i**2)

else:

re.append(i**3)

列表推导式

[i**2 if i % 2 == 0 else i**3 for i in [1,2,3,4,5]]

多个for循环列表推导式

问题陈述

展开矩阵,仅保留偶数。

for循环

matrix = [[1,2,3,4],[5,6,7,8]]

re = []

for row in matrix:

for i in row:

if i % 2 == 0:

re.append(i)

列表推导式

matrix = [[1,2,3,4],[5,6,7,8]]

[i for row in matrix for i in row if i % 2 == 0]

成对输出(元组)

问题陈述

对于bList中的每个元素,在aList中的位置。以元组列表形式表示。

for循环

aList = [0,1,2,3,4,5,6,7,8,9]

bList = [1,2,3,3,4,6,7,7]

re = []

for i in bList:

re.append((i, aList.index(i)))

列表推导式

[(i, aList.index(i)) for i in bList]

成对输出(字典)

问题陈述

对于bList中的每个元素,在aList中的位置。以字典形式表示。

for循环

aList = [0,1,2,3,4,5,6,7,8,9]

bList = [1,2,3,3,4,6,7,7]

re = {}

for i in bList:

re[i]=aList.index(i)

列表推导式

{i:aList.index(i) for i in bList}

你可能感兴趣的:(python列表推导式格式)