我是 python 的初学者,但想从遇到的问题中学习。
在工作脚本的末尾,我有这段代码(见下文),它在.txt文件中输出一系列值:
name, bcoords[i]*AT.
该操作重复 4 次,counting > 3直到true
会发生什么(伪代码):
open('solution_AT.txt','a')output.write(str(target[0]))output.write('\n')counting = 0output.write(name0,bccords0*AT)counting = 1output.write(name1,bccords1*AT)counting = 2output.write(name2,bccords2*AT)counting = 3output.write(name3,bccords3*AT)counting = 4(counting > 3)是trueoutput.write('\n')counting = 0
而不是这个,我想暂时保留这些值:
bcoords0*AT, bcoords1*AT, bcoords2*AT,bcoords3*AT
因为我想对它们执行一些变量相互依赖的数学运算。
即,我想做的是这个(伪代码):
首先,对变量进行数学运算 bcoords
a = bcoords0*AT / (1-bcoords3*AT-bcoords2*AT-bcoords1*AT)b = bcoords1*AT / (1-bcoords3*AT-bcoords2*AT)c = bcoords2*AT / (1-bcoords3*AT)d = bcoords3*AT
其次,以与下面的代码相同的顺序编写值,但使用: a , b, c,d而不是bcoords0*AT, bcoords1*AT, bcoords2*AT,bcoords3*AT
open('solution_AT.txt','a')output.write(str(target[0]))output.write('\n')output.write(name0,a)output.write(name1,b)output.write(name2,c)output.write(name3,d)output.write('\n')
此输出的一行将具有以下结构:
target[0], name0, a, name1, b, name2, c, name3, d \n
而且...我不知道该怎么做,非常感谢任何帮助!最好的
代码:
output = open('solution_AT.txt','a')
if tet_i == None:
output.write(str(target[0]))
output.write('\n')
else:
names = [colors[i][0] for i in tg.tets[tet_i]]
sorted_indices = sorted(enumerate(names), key=lambda (i, name): priority_list[name])
output.write(target[0])
counting = 0
for i, name in sorted(enumerate(names), key=lambda (i, name): priority_list[name]):
output.write(',%s,%s' % (name, bcoords[i]*AT))
counting = counting + 1
if counting > 3:
output.write('\n')
counting = 0
输出.close()