我从csv文件中解析了以下数据,格式为job、assembly、nodeLabel、x、y、z
data = [['j1', 'ass1', 1, [0.01, 0.01, 0.01]],
['j1', 'ass1', 2, [0.02, 0.02, 0.02]],
['j1', 'ass1', 3, [0.03, 0.03, 0.03]],
['j1', 'ass2', 1, [0.04, 0.04, 0.04]],
['j1', 'ass2', 2, [0.05, 0.05, 0.05]],
['j1', 'ass2', 3, [0.06, 0.06, 0.06]],
['j2', 'ass1', 1, [0.07, 0.07, 0.07]],
['j2', 'ass1', 2, [0.08, 0.08, 0.08]],
['j2', 'ass1', 3, [0.09, 0.09, 0.09]],
['j2', 'ass2', 1, [0.1, 0.1, 0.1]],
['j2', 'ass2', 2, [0.11, 0.11, 0.11]],
['j2', 'ass2', 3, [0.12, 0.12, 0.12]],
['j3', 'ass1', 1, [0.13, 0.13, 0.13]],
['j3', 'ass1', 2, [0.14, 0.14, 0.14]],
['j3', 'ass1', 3, [0.15, 0.15, 0.15]],
['j3', 'ass2', 1, [0.16, 0.16, 0.16]],
['j3', 'ass2', 2, [0.17, 0.17, 0.17]],
['j3', 'ass2', 3, [0.18, 0.18, 0.18]]]
现在,我需要为每个部件和节点标签添加基于作业的(j1、j2、j3)x、y、z坐标,并输出为-
{'ass1': {1:[j1x+j2x+j3x, j1y+j2y+j3y, j1z+j2z+j3z], 2: [j1x+j2x+j3x, j1y+j2y+j3y, j1z+j2z+j3z], 3: [...]}, 'ass2': {....}}
**编辑-添加了我提出的部分代码
from collections import defaultdict
csv_content = data
jobDict = defaultdict(list)
for line in csv_content:
jobDict[line[0]].append(line[1:])
final = defaultdict(dict)
# create assembly dict from job
for ks_j, vs_j in jobDict.items():
# print(ks_j)
assemblyDict = defaultdict(list)
for v_j in vs_j:
assemblyDict[v_j[0]].append(v_j[1:])
# create node dict from assembly
for ks_a, vs_a in assemblyDict.items():
# print(ks_a)
nodeDict = defaultdict(dict)
for v_a in vs_a:
nodeDict[v_a[0]] = v_a[1]
# print(nodeDict)
final[ks_j][ks_a] = nodeDict
print(final)
试试这个
相关问题 更多 >
编程相关推荐