Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python在for循环期间对嵌套的(?)列表值执行转换_Python_List_Loops_For Loop - Fatal编程技术网

python在for循环期间对嵌套的(?)列表值执行转换

python在for循环期间对嵌套的(?)列表值执行转换,python,list,loops,for-loop,Python,List,Loops,For Loop,我是python初学者,但希望从遇到的问题中学习 在编写脚本的末尾,我有一段代码(见下文),它在.txt文件中输出一系列值: 名称,bcoords[i]*位于 该操作重复4次,直到计数>3为真 发生的情况是(伪代码): output = open('solution_AT.txt','a') if tet_i == None: output.write(str(target[0])) output.write('\n') else: names = [colors[i

我是python初学者,但希望从遇到的问题中学习

在编写脚本的末尾,我有一段代码(见下文),它在
.txt
文件中输出一系列值:

名称,bcoords[i]*位于

该操作重复4次,直到
计数>3

发生的情况是(伪代码):

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
  • open('solution_AT.txt','a')
  • output.write(str(目标[0]))
  • output.write('\n')
  • 计数=0
  • output.write(name0,bccords0*AT)
  • 计数=1
  • output.write(name1,bccords1*AT)
  • 计数=2
  • output.write(name2,bccords2*AT)
  • 计数=3
  • output.write(name3,bccords3*AT)
  • 计数=4
  • (计数>3)
  • output.write('\n')
  • 计数=0
与此相反,我希望暂时保留以下值:

bcoords0*AT
bcoords1*AT
bcoords2*AT
bcoords3*AT

因为我想对它们执行一些可变的相互依赖的数学运算

也就是说,我想做的是(伪代码):

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
首先,对变量
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(目标[0]))
  • output.write('\n')
  • output.write(name0,a)
  • output.write(name1,b)
  • output.write(name2,c)
  • output.write(name3,d)
  • output.write('\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

output.close()

对不起,这个问题很简单,我在那里找到了我的解决方案:

如果有任何帮助,以下是我的新代码:

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], 'none', '0', 'none', '0', 'none', '0', 'none', '0')
    counting = 0
    top = 0

    for i, name in sorted(enumerate(names), key=lambda (i, name): priority_list[name]):
        VAR1 = (bcoords[i]*AT)
        VAR2 = int(((bcoords[i]*AT)/(1-top))*65535)
        output.write(',%s,%s' % (name, VAR2))
        counting = counting + 1
        top = top + VAR1

        if counting > 3:
            output.write('\n')
            counting = 0