2017-03-28 63 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:]