我有一个元组列表,如下所示:
[(time1, hashusi, servername, uri, referrer, useragent),
(time2, hashusi, servername, uri, referrer, useragent),
(time3, srcip, code, mime),
(time4, hashusi, servername, uri, referrer, useragent),
(time5, srcip, code, mime) ...]
如果项的长度是6,则表示它是一个请求,否则它是一个响应,现在我需要将此列表中的所有请求和响应配对,它们已经按时间排序,正如您在本例中看到的,前两项都是请求。你知道吗
我想一个接一个地检查这些项目,如果一个请求后面有一个响应,那么它们是一对,我会为它们分配一个编号。如果一个请求后面有一个请求,那么第一个请求应该被丢弃,并检查第二个请求后面是否有响应,等等
for item in mergelistsorted:
if len(item) == 6 and flag == None: #The first item is a request
##need to check the next item##
if len(next item) == 6:
continue
else:
requestlist.append((item[0],item[1],item[2],item[3]))
我不知道如何提及“下一项”
定义此方法(source):
然后使用这个循环:
需要注意的是,您不会得到
curr
中的最后一项,最后一次迭代将是(next_to_last, last)
。如果您想在最后的迭代中获得(last, None)
,您需要在pairwise
定义中将izip
更改为izip_longest
。你知道吗与其使用
for item in list
,不如使用for index in range(len(list))
。你知道吗然后您可以将
item
称为list[index]
,next item
将是list[index+1]
。你知道吗您可以使用如下循环遍历对:
例如:
相关问题 更多 >
编程相关推荐