list calculation in python
<p>I have a list like this:</p>

<pre><code>[(ip1, video1, 12345.00000),(ip1, video1, 12346.12362),(ip1, video1, 12347.12684),(ip1, video2,12367.12567),(ip2, video1, 14899.93736), (ip2,video1, 24566.12345).....]
</code></pre>

<p>It records the video id and the time when the video was requested by each user.</p>

<p>Now I want to go through the list, and calculate the time interval between the first and the last request for each video,my list has already sorted by ip address. </p>

<p>The result I want to get is like:</p>

<pre><code>ip1, video1, 2.12684
ip1, video2, 0
</code></pre>

<p>0 means, the requests never repeats. </p>

<p>Can anyone help?</p>

<p>The following is the code I create the dictionary:</p>

<pre><code>for line in fd_in.readlines():
    (time, addr, iptp, userag, usertp, hash, vlanid) = line.split()

    if addr not in client_dict:
        client_dict[addr] = {}

    hash_dict = client_dict[addr]

    if hash not in hash_dict:
        hash_dict[hash] = []

    hash_dict[hash].append((float(time), addr, iptp, userag, usertp, hash, vlanid))


for addr, hash_dict in client_dict.items():
    for hash, hits_list in hash_dict.items():
        hits_list_sorted = sorted(hits_list, key=lambda item: item[0])

        for (time, addr, iptp, userag,usertp,hash,vlanid) in hits_list_sorted:

                xxxxxxxx[Dont know how to do the calculation]

                fd_out.write("%f\t%s\t%s\t%s\n" % (addr, hash, timeinternal))
</code></pre>
