<p>我最近问了一个关于将值列表从txt文件转换为字典列表的问题。从这里的链接可以看到:<a href="https://stackoverflow.com/questions/5472238/convert-list-of-values-from-a-txt-file-to-dictionary?">See my question here</a></p>
<p><br/></p><pre>
P883, Michael Smith, 1991<br/>
L672, Jane Collins, 1992<br/><br/>(added)<br/>(empty line here)<br/>
L322, Randy Green, 1992<br/>
H732, Justin Wood, 1995(/added)<br/>
^key ^name ^year of birth </pre>
<br/>
======<br/>
这个问题已经得到了回答,我使用了以下代码(接受的答案),它工作得很好:<pre><br/>
def load(filename):
students = {}
<pre><code> infile = open(filename)
for line in infile:
line = line.strip()
parts = [p.strip() for p in line.split(",")]
students[parts[0]] = (parts[1], parts[2])
return students
</code></pre>
<p/></pre><br/>
但是,当txt文件的值中有一个行空间时。。(参见添加的部分)它不再工作,并给出一个错误,说明列表索引超出范围。
<p>检查for循环中的空行并跳过它们:</p>
<pre><code>for line in infile:
line = line.strip()
if not line:
continue
parts = [p.strip() for p in line.split(",")]
students[parts[0]] = (parts[1], parts[2])
</code></pre>