首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python列表求差解决方法

2012-06-14 
python列表求差昨天看了几位大牛的回复不过自己学习了下发现结果不是我想要的{key:[time1,a,time2

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??
[解决办法]
这样?

Python code
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]]) 

热点排行