python列表求差
昨天看了几位大牛的回复 不过自己学习了下
发现结果不是我想要的
{'key':['time1','a','time2','b','time3','c','time4','a','time5','c','time6','b','time7','d','time8','a','time9','c','time10','c']
自己修修改改,现在得到这样一个字典
现在需要把字典中的value 即['time1','a','time2','b','time3','c','time4','a','time5','c','time6','b','time7','d','time8','a','time9','c','time10','c']
'time1','a'为一组数据
以'a'为分割点 进行处理
取第一个'a'的下一个时间 和第二个 'a'的前一个时间做差 第二个a的下一个时间和第三个a的前一个做差
如果最后没有a 就最后的时间减倒数第一个a的下一个时间
依次类推
即time3-time2,time7-time5,time10-time9
取出三个差值中最大的一个
最终输出:key:max(时间差)
[解决办法]
举个(对的)例子吧。你现在的例子:
['time1','a','time2','b','time3','c','time4','a','time5','c','time6','b','time7','d','time8','a','time9','c','time10',
第一个'a'的下一个是time2,第二个a的上一个是time4,而你说的差里有的是time3-time2??
[解决办法]
这样?
times = ['time1','a','8','b','12','c','time4','a','12','c','10','b','24','d','time8','a','9','c','18','c']print max([int(i.split('--')[-3]) - int(i.split('--')[0]) for i in ('--'.join(times)+'--s--a--').split('--a--')[1:-1]])