不幸的是,對於我來說,我需要向後兼容w/Python 2.4,並且defaultdict
在2.4版本中不存在。DefaultDict的替代方案
什麼可以替代它?
對於給定的關鍵數據結構的列表:
[{'red': (12, 1, 12), 'white': (30, 2, 60), 'blue': (8, 1, 4), 'orange': (9, 4, 8), 'black': (10, 12, 4)}]
編輯: 添加使用信息。首先,我建立與默認的字典:
defDict[key1].append(... ...)
那麼它是通過幾種方法爲關鍵:VAL(名單)查找和密鑰刪除。
具體爲刪除:
if len(defDict[key1][0]) == 0:
del defDict[key1]
編輯:錯誤的NoneType
print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
print defDict[key]
print "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
if len(defDict[key][0]) == 0:
#del defDict[key]
錯誤:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
None
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
if len(defDict[key][0]) == 0:
TypeError: 'NoneType' object has no attribute '__getitem__'
我認爲錯誤來自key
:
print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
print defDict[key]
print "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
輸出:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
None
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
取決於你用它做什麼。 'get',''setdefault'或明確的'in'檢查是通常的選擇。 – user2357112
@ user2357112謝謝。我編輯了這個問題。首先我構建字典,然後通過一些方法調用它。 –
期望的輸出是什麼? –