2017-03-28 93 views
0

我試圖構建一個程序來管理您的手機通訊錄,即。您可以打印您的聯繫人,搜索聯繫人,添加聯繫人,刪除聯繫人等。程序應根據存儲在dat文件中的數據創建詞典,格式如下:從dat文件創建字典

alex smith,646 -528-3280,JSMITH @ stern.nyu.edu

李四,347-238-3220,jgonzalez @ stern.nyu.edu

....

在此基礎上,我想在Python中創建一個字典,其中的密鑰是一個包含名稱的字符串,相應的值是一個包含兩個字符串的列表:[電話號碼,電子郵件地址]。

任何幫助將不勝感激!我剛開始學習Python和是一個總的小白:/

回答

0

可以使在集合中使用defaultdict來創建帶有不同類型值的字典數據結構。

#!/usr/bin/python 

from collections import defaultdict 
from pprint import pprint 

store = defaultdict(list) 

with open('test.dat', 'r') as FH: 
    for file in FH.readlines(): 
     line = file.strip() 
     try: 
      name,phone,email = line.split(',') 
     except ValueError, err: 
      print "Record: ", line 
      raise Exception("Failed while unpacking. Not enough arguments to supply.") 
     store[name].extend([phone,email]) 

pprint(store) 

下面是一個例子。

2

您可以逐行讀取文件中的行,每行分成3個字段,然後創建詞典:

d = {} 
with open("mydatafilename", 'r') as f: 
    lines = f.readlines() 
    for line in lines: 
     fields = line.split(',') 
     d[fields[0]] = fields[1:]