需要编写一个函数,该函数将打开的文件作为唯一参数,并返回一个将字符串映射到字符串和整数列表的字典。
文本中的每一行都有一个用户名、名字、姓氏、年龄、性别和一个电子邮件地址。该函数会将每个人的信息插入到字典中,以他们的用户名作为键,值是 [姓氏、名字、电子邮件、年龄、性别] 的列表。
基本上我想做的是打开一个包含以下内容的文本文件:
ajones Alice Jones 44 F alice@alicejones.net
并返回如下内容:
{ajones: ['Jones', 'Alice', 'alice@alicejones.net', 44, 'F']}
到目前为止我已经这样做了,但是还有其他更简单的方法吗?
def create_dict(file_name):
'''(io.TextIOWrapper) -> dict of {str: [str, str, str, int, str]}
'''
newdict = {}
list2 = []
for line in file_name:
while line:
list1 = line.split() #for a key, create a list of values
if list2(0):
value += list1(1)
if list2(1):
value += list1(2)
if list2(2):
value += list1(3)
if list2(3):
value += list1(4)
newdict[list1(0)] = list2
for next_line in file_name:
list1 = line.split()
newdict[list1(0)] = list1
return newdict
def helper_func(fieldname):
'''(str) -> int
Returns the index of the field in the value list in the dictionary
>>> helper_func(age)
3
'''
if fieldname is "lastname":
return 0
elif fieldname is "firstname":
return 1
elif fieldname is "email":
return 2
elif fieldname is "age":
return 3
elif fieldname is "gender":
return 4