python 列表推导式

#coding=gbk
import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio # loadmat

mysolvers = list()
mysolvers0 = list()

niter = 10

######### 解析过程,由外向内解析##############

############################################## 例子1 ######################################

solvers = [('pretrained',mysolvers),('scratch',mysolvers0)]

blobs = ('loss','accuracy')

loss,accuracy = ({name:np.zeros(niter) for name,_ in solvers } for _ in blobs)


############## 第一层姐解析################

# blobs 长度为2 ,遍历的时候将{}内的两个分别赋给 loss1和loss2

loss = {name:np.zeros(niter) for name,_ in solvers}
accuracy = {name:np.zeros(niter) for name,_ in solvers}


############## 第二层姐解析################

# 分别对 loss1和loss2解析

loss1 = {'loss': np.zeros(niter),'accuracy': np.zeros(niter)}
loss2 = {'loss': np.zeros(niter),'accuracy': np.zeros(niter)}


############################################## 例子2 ######################################

it = 1 # 迭代次数
loss_disp = ' ; '.join('%s: loss = %.2f ,acc = %.2f' % (n, loss[n][it], accuracy[n][it]) for n, _ in solvers)

# loss_disp 与  loss_disp_eq 是相同的
loss_disp_eq = ' ; '.join(('%s: loss = %.2f ,acc = %.2f' % (n, loss[n][it], accuracy[n][it])) for n, _ in solvers)

############## 第一层姐解析################
loss_disp1 = '%s: loss = %.2f ,acc = %.2f' % ('pretrained', loss['pretrained'][it], accuracy['pretrained'][it])
loss_disp2 = '%s: loss = %.2f ,acc = %.2f' % ('scratch', loss['scratch'][it], accuracy['scratch'][it])

############## 第二层姐解析################
loss_disp_parse = loss_disp1 + ' ; ' + loss_disp2

######## 下面三种输出形式是等价的 ###############
print loss_disp
print loss_disp_eq
print loss_disp_parse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值