我正在尝试构建管理您的手机通讯录的程序,即。允许您打印联系人,搜索联系人,添加联系人,删除联系人等。程序应根据存储在dat文件中的数据创建字典,格式如下:
alex smith,646-528-3280,jsmith @ stern.nyu.edu
jane doe,347-238-3220,jgonzalez @ stern.nyu.edu
...
基于此,我想在Python中创建一个字典,其中键是一个包含名称的字符串,相应的值是一个包含两个字符串的列表:[电话号码,电子邮件地址]。
任何帮助将不胜感激!我刚刚开始学习Python并且是一个总菜鸟:/
答案 0 :(得分:2)
您可以逐行读取文件,将每行拆分为3个字段,然后创建字典:
d = {}
with open("mydatafilename", 'r') as f:
lines = f.readlines()
for line in lines:
fields = line.split(',')
d[fields[0]] = fields[1:]
答案 1 :(得分:0)
您可以在集合中使用python中的defaultdict
来创建具有不同类型值的dict数据结构。
#!/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)
这是一个样本。