Python 数据科学指南1.7 从另一个列表创建列表——列表推导

推导:是从一个序列创建另一个序列的操作,例如,我们可以从列表或者元组中创建一个列表。

列表推导特点:

1.序列,表示一个我们对其元素感兴趣的列表。

2.序列的元素拥有可变的表示方法。

3.使用输入序列的元素来产生输出表达式,以此产生输出序列。

4.一个可选的谓词表达式。

一、示例代码

#先输入一个列表,元素包含了一些正数和负数,我们希望得到的输出是由那些负数元素的平方值构成的列表。

#1.定义一个由一些正整数和负整数构成的简单列表
a=[1,2,-1,-2,3,4,-3,-4]

#2.现在让我们写出列表推导
#pow()是幂函数,需要两个输入参数,第一个参数是底数,第二个参数是指数,返回的输出为幂值。
#代码解析:
#1.输入是列表a,输出为列表b。
#2.我们用变量x来表示列表中的每个元素。
#3.pow(x,2)是输出表达式,使用输入列表中的元素来计算产生输出列表。
#4.if x<0 是谓词表达式,它负责选择输入列表中的哪些元素来计算产生输出列表。
b=[pow(x,2)for x in a if x<0]

#3.最后我们看看保存在新建的列表b里的输出结果。
print (b)

二、输出结果

[1, 4, 9, 16]

三、更多内容

1.字典推导

a={'a':1,'b':2,'c':3}
b={x:pow(y,2) for x,y in a.items()}
print (b)

{'a': 1, 'b': 4, 'c': 9}

2.元组推导

#新的处理函数,代替pow()函数
def process(x):
	if isinstance(x,str):
		return x.lower()
	elif isinstance(x,int):
		return x*x
	else:
		return -9

a=(1,2,-1,-2,'D',3,4,-3,'A')
b=tuple(process(x) for x in a)

print(b)

(1, 4, 1, 4, 'd', 9, 16, 9, 'a')

猜你喜欢

转载自blog.csdn.net/cjx_cqupt/article/details/88218271