我目前正在使用一個詞典鍵入秒自從時代結合嵌套字典和列表來存儲和查找事件。實力在於,我可以快速查找具有良好性能的值(認爲哈希值)。弱點在於搜索和操縱後續內容很笨拙。我忍不住想我的方法並不是Pythonic,所以我在尋找建議。Pythonic替代嵌套字典和列表
下面是使用整數,而不是秒紀元以來的一個簡單的例子:
D = {}
D[1] = {"995" : ["20905", "200101"]}
D[2] = {"991" : ["20901"], "995" : ["20905"]}
eventCode = '995'
error = '90900'
# find entry
if 1 in D:
# if eventCode exists then append error code
if D[1][eventCode]:
D[1][eventCode].append(error)
我可以看一下d [1]很快,但是其餘的代碼似乎不是很Python的。任何建議還是我偏執狂?
我應該檢查「錯誤」是否已經在列表中。但是,我不確定如何檢查此構造的成員身份。這段代碼不爲我工作:
if error not in D[1][eventCode]
是否有特殊原因來定義d爲'dict'而不是'list'? – Selcuk
最後一個片段應該可以正常工作。 –
訂單是否在列表中很重要?如果不是,請考慮使用集合,它具有更快的查找和自動欺騙預防功能,儘管集合比列表消耗更多的RAM。 –