如何将列 label/name 分配给数组中嵌套数组的每个元素?

How to I assign a column label/name to each element of a nested array within an array?

我有以下数据:

header = ['EXPERIMENT_ID', 'SESSION_ID', 'TRIAL_END', 'TRIAL_START']

data = ([(1, 1,  85.3543804,  74.7716105),
       (1, 1,  95.3867684,  85.3710747),
       (1, 1, 105.4189535,  95.4033732)])

如何使所有数据[n][0]都标记为'EXPERIMENT_ID',数据[n][1]标记为'SESSION_ID',数据[n][2]作为 'TRIAL_END' 和数据 [n][3] 作为 'TRIAL_START'?

我知道 dict() 是进行此组合过程的方法,因此我将其形象化为:

datadict = (dict(EXPERIMENT_ID = 1, SESSION_ID= 1, TRIAL_END = 85.3543804, TRIAL_START = 74.7716105), (dict(EXPERIMENT_ID = 1, SESSION_ID= 1, TRIAL_END = 95.3867684, TRIAL_START = 85.3710747)...)

我目前在 for 循环中有一个 for 循环,它通过一个一个地访问每个变量来执行此操作,但它在脚本本身中占用了相当大的 space 块。我想知道是否有更有效的方法来完成这项任务?

我们可以像 link 中提到的那样一起使用 dict() 和 zip() 。下面的代码仍然使用循环来遍历列表。

header = ['EXPERIMENT_ID', 'SESSION_ID', 'TRIAL_END', 'TRIAL_START']
data = ([(1, 1,  85.3543804,  74.7716105),
        (1, 1,  95.3867684,  85.3710747),
        (1, 1, 105.4189535,  95.4033732)])
out = []
for d in data:
     out.append(dict(zip(header,d)))

print(out)
    [{'EXPERIMENT_ID': 1, 'SESSION_ID': 1, 'TRIAL_END': 85.3543804, 'TRIAL_START': 74.7716105}, {'EXPERIMENT_ID': 1, 'SESSION_ID': 1, 'TRIAL_END': 95.3867684, 'TRIAL_START': 85.3710747}, {'EXPERIMENT_ID': 1, 'SESSION_ID': 1, 'TRIAL_END': 105.4189535, 'TRIAL_START': 95.4033732}]