我正在处理一个问题,我需要给所有行分配一个字母列表,总共16个(a到p)。每行中分配的字母数等于“组数”列中的数字,并在列表中迭代(a到p)。当作业到达列表的底部时,我想重新开始
这是我的原始代码:
for i in range (len(output)):
start = sum(output['number of gangs'][0:int(i)])
end = sum(output['number of gangs'][0:i+1])
output['gang'][i] = str(gangs[int(start) % len(gangs):int(end) % len(gangs)])
i += 1
这是输出:
number time
of gangs and vessel gang
0 5.0 [1, 0] ['a', 'b', 'c', 'd', 'e']
1 5.0 [2, 0] ['f', 'g', 'h', 'i', 'j']
2 1.0 [2, 1] ['k']
3 2.0 [2, 2] ['l', 'm']
4 2.0 [3, 0] ['n', 'o']
5 1.0 [3, 1] ['p']
6 2.0 [3, 2] ['a', 'b']
7 1.0 [3, 3] ['c']
8 5.0 [4, 0] ['d', 'e', 'f', 'g', 'h']
9 1.0 [4, 1] ['i']
10 2.0 [4, 2] ['j', 'k']
11 2.0 [4, 3] ['l', 'm']
12 1.0 [5, 1] ['n']
13 2.0 [5, 2] []
14 2.0 [5, 3] ['a', 'b']
15 1.0 [5, 4] ['c']
16 1.0 [6, 1] ['d']
17 2.0 [6, 2] ['e', 'f']
18 2.0 [6, 3] ['g', 'h']
19 1.0 [6, 4] ['i']
20 2.0 [6, 5] ['j', 'k']
21 1.0 [7, 1] ['l']
22 2.0 [7, 2] ['m', 'n']
23 1.0 [7, 4] ['o']
24 2.0 [7, 5] []
25 1.0 [7, 6] ['b']
26 1.0 [7, 7] ['c']
27 2.0 [8, 2] ['d', 'e']
28 2.0 [8, 5] ['f', 'g']
29 2.0 [9, 2] ['h', 'i']
30 4.0 [9, 8] ['j', 'k', 'l', 'm']
31 1.0 [9, 9] ['n']
32 4.0 [10, 8] []
33 1.0 [10, 9] ['c']
34 1.0 [10, 10] ['d']
35 1.0 [11, 9] ['e']
36 1.0 [11, 10] ['f']
37 1.0 [12, 10] ['g']
如您所见,当我到达列表的底部(a到p)时,相应的单元格只显示为“[]”(而不是第5行,我手动更新了该行以测试它是否工作)。从下一行开始,赋值是正确的。 我试过这个:
for i in range(len(output)):
if i in output.gang[output.gang == '[]'].index.tolist():
output['gang'][i] = str(gangs[int(sum(output['number of gangs'][0:int(i)])) % len(gangs):int(sum(output['number of gangs'][0:i+1])) % len(gangs)])
else:
break
还有这个:
for i in range (len(output)):
if any(c.isalpha() for c in output['gang'][i]) == False:
output['gang'][i] = str(gangs[int(sum(output['number of gangs'][0:int(i)])) % len(gangs):int(sum(output['number of gangs'][0:i+1])) % len(gangs)])
continue
else:
break
还有这个:
for i in range (len(output)):
if output['gang'] == '[]':
output['gang'][i] = str(gangs[int(sum(output['number of gangs'][0:int(i)])) % len(gangs):int(sum(output['number of gangs'][0:i+1])) % len(gangs)])
continue
else:
break
还有这个:
def update(table, column, ref, input):
for i in range(len(table)):
if column[i] == '[]':
column[i] = str(input[int(sum(ref[0:int(i)])) % len(input):int(sum(ref[0:i+1])) % len(input)])
else:
break
return table
update(output, output['gang'], output['number of gangs'], gangs)
什么都不管用。所有这些代码不显示错误,只是不更新我的表。有人能帮我吗
目前没有回答
相关问题 更多 >
编程相关推荐