阅读文件和打印字典
问题描述:
这里是我的输入文件:阅读文件和打印字典
Drew, Matthew J., s1058828
Howerth, Chloe E., s1002240
Karolewicz, Michael J., s0995867
Perzely, Connor J., s0958005
Tanenbaum, Roberto, s1124377
Guan, Tiffany, s1103462
Jaligama, Vishnu Praneeth, s1143667
Jin, Ailan, s1152308
我是新来的Python和我的任务是把名册的文件,并让他们进入字典和“现在”打印键:值。我觉得我很接近这个。
roster = {}
input_file = open("cs371598roster", "r")
whole_thing = input_file.read()
lines = whole_thing.split("\n")
for line in lines:
last,first,ids = line.split(", ")
for i in range(len(last)):
key = ids[i]
val = first[i] + " " + last[i]
roster[key] = val
print(roster)
答
您应该使用with | as
并将id设置为由空格连接的名字和姓氏的值。此作品:
roster = {}
input_file = open("cs371598roster", "r")
with input_file as f:
for line in f:
last, first, ids = line.split(", ")
roster[ids.strip()] = ' '.join([first, last])
print(roster)
答
你就近了。但是,您不需要第二个循环。您可以在第一个名称中添加所有名称。
roster = {}
input_file = open("cs371598roster", "r")
whole_thing = input_file.read()
lines = whole_thing.split("\n")
for line in lines:
last, first, ids = line.split(", ")
roster[ids] = first + last
print(roster)
你刚才溶液你们的名字和最后一行的IDS分解成单个字符,并添加这些,你想可能不是什么。
对不起,预期结果是什么?现在,您正在为行中的每一行分配变量'last,first,ids',并且仅使用最后一行,因为您重新初始化了每行的变量。 – cosinepenguin
这看起来像一个CSV格式的文件,所以你应该考虑使用'csv'模块来读取它。 – martineau