编写代码时,发现,部分变量如单独定义的话,会方便后面的使用。但是这个貌似也会延长代码运行时间。
而有时候,我也发现,一个表达式如果不定义为一个变量的话,写起来很长,不便于阅读。同时,有时候一样会增加代码的运行速度。。
因此,想请问下,到底什么时候设置变量好些呢?
我个人感觉,如果在for循环下,定义变量的话,会拖慢速度。。
而如果不存在循环的话,则定义变量,貌似则会加快速度。。
不知道是否真的如此。。
编写代码时,发现,部分变量如单独定义的话,会方便后面的使用。但是这个貌似也会延长代码运行时间。
而有时候,我也发现,一个表达式如果不定义为一个变量的话,写起来很长,不便于阅读。同时,有时候一样会增加代码的运行速度。。
因此,想请问下,到底什么时候设置变量好些呢?
我个人感觉,如果在for循环下,定义变量的话,会拖慢速度。。
而如果不存在循环的话,则定义变量,貌似则会加快速度。。
不知道是否真的如此。。
根据你提供的的内容:
data.txt
7.79,8.66,2.76,7.06,3.47
5.52,1.61,9.55,9.19,9.95
8.74,5.93,4.81,0.47,0.60
9.64,9.47,6.49,4.44,8.64
0.96,9.14,6.23,4.32,7.72
0.82,6.41,5.25,2.214,3.87
....
args.txt内容如下:
1,3,5,7
2,4,6,8
1,2,3,5
。。。s
输出:
0.113,0.083,0.760,0.009,1.000
0.260,1.000,0.910,0.313,0.244
0.249,0.965,0.905,1.000,1.000
0.377,0.184,0.298,0.720,0.080
1.000,0.143,0.246,0.660,0.720
1.000,0.205,0.050,0.214,1.000
0.585,1.000,0.550,1.000,0.410
0.211,0.930,0.735,1.000,1.000
1.000,0.218,0.360,0.100,0.110
0.515,1.000,0.560,0.585,0.420
0.306,0.220,0.900,0.316,0.209
0.180,1.000,1.000,0.285,1.000
0.110,1.000,0.922,1.000,1.000
代码如下:
argTable = []
def getNew(num,colidx):
level = argTable[colidx]
if num< level[0]:
return 1.0
if num > level[3]:
return (num-level[3])/level[3]
levelR = zip(level, level[1:len(level)])
for lR in levelR:
if lR[0] < num <= lR[1]:
return (lR[0] - num) / (lR[0] - lR[1])
if __name__ == '__main__':
with open("args.txt","rb")as f:
for line in f:
l= line.split(b",")
l = [float(i) for i in l]
argTable.append(l)
with open("data.txt","rb")as f:
with open("newdata.txt", "wb") as fw:
for line in f:
l = line.split(b",")
l = [float(i) for i in l]
newl = [getNew(i,idx) for idx,i in enumerate(l)]
newlS = [f"{i:2.3f}" for i in newl]
fw.write(",".join(newlS).encode("utf-8")+b"\r\n")