1 回答

TA貢獻1786條經驗 獲得超11個贊
不處理行的平面列表,而是將其轉換為一種結構,可以更輕松地首先“查詢”數據,可能會更容易。類似于字典列表,其中每個字典代表一個周期:
cycles = {}
rows = contents.splitlines() # split the `contents` text blob into individual lines
for row in rows[1:]: # the first line in your question is a header - [1:] skips it
row = rows.split() # split each line by whitespace
cycle = cycles.setdefault(row[0], {'id': row[0], 'rows': []}
cycle['rows'].append({'cycle':row[0], 'test_time': row[1], 'current': row[2], ...})
然后,您可以按test_time對它們進行排序:
for key, cycle in cycles.items():
cycles['rows'].sort(key=itemgetter('test_time'))
然后,您可以處理您的數據。每個周期的最后一行:
for key, cycle in cycles.items():
output_row(cycles['rows'][-1])
最近五個周期的行:
for key, cycle in sorted(cycles.items())[:-5]:
output_rows(cycles['rows'])
從4到30中提取行:
for idx in range(4, 31):
cycle = cycles[str(idx)]
output_rows(cycles['rows'])
添加回答
舉報