python列表解释(list comprehension)记录

list comprehension列表解释可以方便的实现列表的元素操作,还能结合ifelse 进行条件判断。
(1)生产序列

vec1 = [num for num in range(20)]
# list里面是tuple
vec2 = [(x,y) for x in range(4) for y in range(5)] 
# list里面是dict
vec3 = [[{'a':x,'b':y} for x in range(4) for y in range(5)]

(2)带if/else 判断

x=np.linspace(0,np.pi,50)
y=sin(x)
boo = [ i if i<0.8 else 0.8 for i in y]
plt.plot(boo)
plt.show()

(3)处理坐标数据
数学软件sage的绘图函数如scatter_plot,line等需要传递一个形如 [[x1,y1],[x2,y2],...[xn,yn]] 的列表作为参数,代表所绘制图像的 x , y 坐标轴,这时用列表解释很方便的实现,下面代码运行于Sage8.0

x=np.linspace(0,np.pi,50)
y=sin(x)
vec = [[x[i],y[i]] for i in range(int(len(x)))]
a=line(vec)
b=scatter_plot(vec)
show(a+b) #同时绘制a和b

python列表解释(list comprehension)记录_第1张图片

你可能感兴趣的:(Python,Math)