在特定索引处迭代嵌套列表的元素以及另一个普通列表的元素索引
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])
我有这两个列表:
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])