【问题标题】:How to I assign a column label/name to each element of a nested array within an array?如何为数组中嵌套数组的每个元素分配列标签/名称?
【发布时间】:2021-12-02 07:21:09
【问题描述】:

我有以下数据:

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)])

如何使所有 data[n][0] 标记为“EXPERIMENT_ID”,data[n][1] 标记为“SESSION_ID”,data[n][2] 标记为“TRIAL_END”和 data [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 循环,它通过逐个访问每个变量来完成此操作,但它在脚本本身中占用了相当大的空间。我想知道是否有更有效的方法来完成这项任务?

【问题讨论】:

    标签: python-3.x dictionary numpy-ndarray


    【解决方案1】:

    我们可以像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}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-30
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 2018-10-07
      • 2011-08-19
      相关资源
      最近更新 更多