您正在尋找的嵌套字典。在Python中實現perl的autovivification功能(詳細說明請參見here)。這是一個MWE。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
class AutoVivification(dict):
"""Implementation of perl's autovivification feature."""
def __getitem__(self, item):
try:
return dict.__getitem__(self, item)
except KeyError:
value = self[item] = type(self)()
return value
def main():
d = AutoVivification()
filename = 'test.csv'
with open(filename, 'r') as f:
reader = csv.reader(f, delimiter=',')
next(reader) # skip the header
for row in reader:
d[row[0]][row[1]] = row[2]
print(d)
#{'1': {'24': '1.5', '16': '4'}, '3': {'150': '3', '110': '4', '165': '3', '161': '4'}, '2': {'32': '4', '50': '4', '47': '4'}}
if __name__ == '__main__':
main()
的test.csv
內容,
userId,movieId,rating
1,16,4
1,24,1.5
2,32,4
2,47,4
2,50,4
3,110,4
3,150,3
3,161,4
3,165,3
在解決這個迄今爲止任何企圖?如果是這樣,請通過編輯您的問題來分享它們。如果沒有,請在提問前嘗試一些事情。 –
Downvoted,因爲吉姆是正確的。 –