也就是說,元組(FIELD1,FIELD2,字段3,字段4)必須在同一時間的鍵和值。 python中可以實現這種實現嗎?
是的。有什麼能阻止你做這樣的:
key = ("f1", "f2", "f3", "f4", "f5")
value = ("f1", "f2", "f3", "f4", "f5")
d = {key: value}
如果我理解正確的話,你一直在做這樣的事情至今:
line_no = 1
d = {}
for line in open(FILE):
d[line_no] = line # line = ("f1", "f2", "f3", "f4")
line_no += 1
..?
如果不是,請詳細說明我錯在何處或發佈你的源代碼:)
編輯:
好吧,謝謝你的評論,我想我現在明白了。我會做這樣的:
d = {}
for line in open(FILE):
d[line] = []
d[line].append(f5) # line = ("f1", "f2", "f3", "f4"), f5 = timestamp
這樣,你會使用整個元組的關鍵,可以減去具有相同的F1,F2,F3,F4記錄的時間戳(F5)。對我來說,儘管在SQL中看起來更容易。
這樣,隨着負載的增加,您將有恆定的查找時間和線性時間。但是我認爲如果關鍵是不重要的話,你會受到一些性能的影響。
讓我想想怎麼你會相互suctract時間戳..
EDIT2:
是的,你可以在一對的第一個元素的列表:FL = P [ 0]在對p]],然後過濾掉任何具有多於1個次數:
像這樣L2 = [1爲升在FL如果len(L)> 1]
但沒有按」 t看起來非常有效..
我很困惑。你的意思是你想在'field5'上對行進行分組,並且有一個字典字典(如你的標題),或者文件的行已經是唯一的,你只需要'field5'作爲鍵而不是行號(如「包含...作爲鍵的值」)? –
元組可以是鍵,但是你需要其他字段作爲鍵的一部分嗎?如果field5是唯一的,你可以使用它作爲關鍵? (如果你使用行號作爲鍵,那麼列表是不是更簡單?) – cdarke
我使元組(字段1,字段2,字段3,字段4)作爲值和行號作爲鍵。基本上我在做什麼,如果行1和行2鍵具有相同的值,我刪除詞典中的兩個條目。作爲新的實現,在刪除條目之前,我想要獲取時間戳的field5值的差異。 – newbie555