为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕妹3146593 2021-07-05 17:51:54
基本上,我想将现有数组(时间戳、值)与前一分钟值进行比较比如说Array1 = [[key1, v1] [key2, v2] [key3, v3] [key4, v4]]并想生成一个新数组,如Array2 = [[key2, v2-v1] [key3, v3-v2] [key4, v4-v3]]这里的关键是时间戳
查看完整描述

2 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

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


查看完整回答
反对 回复 2021-07-21
?
慕沐林林

TA贡献2016条经验 获得超9个赞

这里有一个简单的方法来解决它:


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

希望这可以帮助。


查看完整回答
反对 回复 2021-07-21
  • 2 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号