1

私はこのリストを持っています:

[[10:09:56.033,ComponentB,2,DEBUG,description],
[10:09:56.034,ComponentB,1,DEBUG,description],
[10:09:57.034,ComponentB,2,DEBUG,description],
[10:09:57.045,ComponentB,2,DEBUG,description]]

すべてのタイムスタンプを印刷するにはどうすればよいですか。お気に入り:

10:09:56.033
10:09:56.034
10:09:57.034
10:09:57.045

また、次のように、1 秒あたりのタイムスタンプのみを出力するにはどうすればよいですか。

10:09:56.033
10:09:56.034
4

3 に答える 3

1

すべてのスタンプを印刷する:

stamps = [
    ['10:09:56.033', 'ComponentB', 2, 'DEBUG', 'description'],
    ['10:09:56.034', 'ComponentB', 1, 'DEBUG,description'],
    ['10:09:57.034', 'ComponentB', 2, 'DEBUG,description'],
    ['10:09:57.045', 'ComponentB', 2, 'DEBUG,description']
]

for var in stamps:
    print var[0]

毎秒の印刷に関しては(hcwhsaの答えのバリエーションで、個別の関数の代わりにラムダをすべて一緒に使用しています):

from itertools import groupby


lis = [['10:09:56.033', 'ComponentB', 2, 'DEBUG', 'description'],
       ['10:09:56.034', 'ComponentB', 1, 'DEBUG', 'description'],
       ['10:09:57.034', 'ComponentB', 2, 'DEBUG', 'description'],
       ['10:09:57.045', 'ComponentB', 2, 'DEBUG', 'description']]

for k, g in groupby(lis, key=lambda item: item[0][0:8]):
    print k
    print '\n'.join(x[0] for x in g) + '\n'

これはより速くなるはずです。

于 2013-10-28T15:38:06.307 に答える