在純Python,只是建立一個頂級字典,使用dict.setdefault()
物化嵌套字典,如果仍然丟失:
result = {}
for outer, inner, value in data:
result.setdefault(outer, {})[inner] = value
這是分組數據的最簡單和更可讀的方式。
演示:
>>> data = [
... ('di', 'c1', 'avg11'),
... ('di', 'c2', 'stdev12'),
... ('eng', 'c1', 'stdev21'),
... ('eng', 'c2', 'stdev22')
... ]
>>> result = {}
>>> for outer, inner, value in data:
... result.setdefault(outer, {})[inner] = value
...
>>> result
{'di': {'c1': 'avg11', 'c2': 'stdev12'}, 'eng': {'c1': 'stdev21', 'c2': 'stdev22'}}
如果必須已經data1
和data2
變量之後,只需設置那些來自'di'
和'eng'
鍵:
data1 = result['di']
data2 = result['eng']
但這是相當不靈活,如果你有更多或更少或不同的外鍵。
爲什麼單獨的變量名?爲什麼不只是一個帶有'di''和''eng''鍵的頂級字典? –