猿问

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

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

比如说

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

并想生成一个新数组,如

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

这里的关键是时间戳


慕妹3146593
浏览 190回答 2
2回答

12345678_0001

您可以使用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]}'])

慕沐林林

这里有一个简单的方法来解决它: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],因为i从 开始0)。这打印:[['key2', 1], ['key3', 1], ['key4', 1]]希望这可以帮助。
随时随地看视频慕课网APP

相关分类

Python
我要回答