需要使用现有数组生成新数组

时间:2018-10-17 08:34:53

标签: python python-3.x

基本上,我想将现有数组(时间戳,值)与以前的分钟值进行比较

例如

Array1 = [[key1, v1] [key2, v2] [key3, v3] [key4, v4]]

,并希望生成一个新的数组,如

Array2 = [[key2, v2-v1] [key3, v3-v2] [key4, v4-v3]]

这里的关键是时间戳

2 个答案:

答案 0 :(得分:0)

这是解决问题的简单方法:

Array1 = [['key1', 1], ['key2', 2], ['key3', 3], ['key4', 4]]

array2 = []
for i, elem in enumerate(Array1[1:]):
    array2.append([elem[0], elem[1] - Array1[i][1]])

print(array2)

您从第二个元素开始迭代Array1的元素,并保持key不变,同时计算第二个元素为当前元素减去前一个元素值的差(即Array1[i][1],因为i0开始)。 打印:

[['key2', 1], ['key3', 1], ['key4', 1]]

希望这会有所帮助。

答案 1 :(得分:0)

您可以使用enumerate并对原始索引进行切片以从第一个索引开始,例如

res = [[v[0], f'{arr_1[i+1][1]}-{arr_1[i][1]}'] for i, v in enumerate(arr_1[1:])]
# [['key2', 'v2-v1'], ['key3', 'v3-v2'], ['key4', 'v4-v3']]

扩展循环:

res = []
for i, v in enumerate(arr_1[1:]):
    res.append([v[0], f'{arr_1[i+1][1]}-{arr_1[i][1]}'])