在特定索引处迭代嵌套列表的元素以及另一个普通列表的元素索引

Iterate on the elements of nested list at particular index together with index of element of another normal list

我有这两个列表:

date_list = ['01-01-2020', '01-02-2020', '01-03-2020', '01-04-2020']

values_list = [['00:00:00', '20', '1', '5000'],
 ['00:01:00', '23', '70', '6000', '00:02:00', '56', '48', '8000'], 
['00:03:00', '32', '90', '5800', '00:04:00', '666', '486', '9000'], 
['00:05:00', '776', '68', '950']]

我希望像这样将日期添加到每次值中:

[['01-01-2020 00:00:00', '20', '1', '5000'], 
['01-02-2020 00:01:00', '23', '70', '6000', '01-02-2020 00:02:00', '56', '48', '8000'], 
['01-03-2020 00:03:00', '32', '90', '5800', '01-03-2020 00:04:00', '666', '486', '9000'], 
['01-04-2020 00:05:00', '776', '68', '950']]

我在原始值列表中的每 27 个索引处都有时间。到目前为止,我一直在这样做,我将日期添加到嵌套列表的每个元素,然后使用 pandas 将其清除。

[ [date_list[i] + ' '+ j for j in sub] for i, sub in enumerate(values_list) ]

有什么最佳方法吗?

我会将两个数据压缩在一起(而不是合并它们)并重建列表,如果匹配日期(每第 4 个元素)则更改元素,保留其他元素

result = [["{} {}".format(dl,x) if i%4==0 else x for i,x in enumerate(vl)]
           for dl,vl in zip(date_list,values_list)]

>>> result
[['01-01-2020 00:00:00', '20', '1', '5000'],
 ['01-02-2020 00:01:00',
  '23',
  '70',
  '6000',
  '01-02-2020 00:02:00',
  '56',
  '48',
  '8000'],
 ['01-03-2020 00:03:00',
  '32',
  '90',
  '5800',
  '01-03-2020 00:04:00',
  '666',
  '486',
  '9000'],
 ['01-04-2020 00:05:00', '776', '68', '950']]
ans = [[v if ':' not in v else dl+' '+v for v in vl] for dl,vl in zip(date_list, values_list)]

代码将日期附加到所有具有 : 的属性,而只有日期具有。

输出:

[['01-01-2020 00:00:00', '20', '1', '5000'],
 ['01-02-2020 00:01:00',
  '23',
  '70',
  '6000',
  '01-02-2020 00:02:00',
  '56',
  '48',
  '8000'],
 ['01-03-2020 00:03:00',
  '32',
  '90',
  '5800',
  '01-03-2020 00:04:00',
  '666',
  '486',
  '9000'],
 ['01-04-2020 00:05:00', '776', '68', '950']]

我会使用循环。

for date, values in zip(date_list, values_list):
    values[::4] = (date + ' ' + value for value in values[::4])