-2

最初の列には文字列、2 番目の列には整数、3 番目の列には次のような浮動小数点があります。

steve   134     0.000010

Harry   133 0.000012

joanne  134 0.000022

steve   135 0.000024

joanne  133 0.000045

steve   133 0.000078

joanne  133 0.000079    

joanne  133 0.000081    

joanne  136 0.000083

steve   134 0.000085

steve   135 0.000087

次のような出力が必要です。

steve   134(count=2,Time interval=0.000085-0.000010),133(count=1,Time interval=0.000078-0.000000),135(count=2,Time interval=0.000087-0.000024),136(count=0, Time interval=0.000000-0.000000)

harry   134(count=0, Time interval),133(count=1, Time interval),135(count=0, Time interval),136(count=0, Time interval)

joanne  134(count=1, Time interval),133(count=3, Time interval),135(count=0, Time interval),136(count=1, Time interval) 

[ハリーとジョアンの時間間隔は、スティーブと同じ方法で計算されます]。

基本的に、スティーブの場合、各スティーブが持つ 133,134,135,136 のエントリ数と、133,134,135,136 が発生した時間間隔を計算する必要があります。皆さんが私の質問を理解してくれることを願っています。

4

1 に答える 1

0

これで始められるはずです

>>> from collections import defaultdict
>>> names = defaultdict(list)
>>> with open('f.txt') as f:
...    lines = [l.split() for l in f.readlines() if l.strip()]
...    for l in lines:
...      names[l[0]].append([l[1],l[2]])
>>> for i in names.iteritems():
...    print i
... 
('steve', [['134', '0.000010'], ['135', '0.000024'], ['133', '0.000078'], ['134', 
'0.000085'], ['135', '0.000087']])
('joanne', [['134', '0.000022'], ['133', '0.000045'], ['133', '0.000079'], ['133', '0.000081'], ['136', '0.000083']])
('Harry', [['133', '0.000012']])
于 2012-05-23T17:55:29.473 に答える