函数不返回其键的值

时间:2015-05-23 03:29:32

标签: python-3.x dictionary

我正在编写一个从给定文件构造dictionary的函数。该文件包含以下数据:7576240,Sigrid,Rahn。该号码是一个ID,其余的是第一个和第二个名称。我的任务是创建一个dictionary,其ID为Key,首字母和姓氏为Value,采用元组格式。 我设法做到了,但当我尝试这样做时:

students_dict = read_class_from_file('class1.txt')
print(students_dict['7576240'])

它返回:

2365568 : ('Josef', 'Krten')
3544826 : ('Bernadene', 'Klimas')
5215521 : ('Florie', 'Starkebaum')
6914206 : ('Minnaminnie', 'Sridhar')
7576240 : ('Sigrid', 'Rahn')
8963113 : ('Sharri', 'Benyon')
Traceback (most recent call last):
  File "<string>", line 2, in <fragment>
builtins.TypeError: 'NoneType' object is not subscriptable

我认为字典工作正常,直到我称之为Key才能获得它的价值,有人可以帮忙吗?

我的代码:

def read_class_from_file(filename):
    ''' function reads all data in (filename) and returns a dictionary '''
    dictionary = {}
    lines = []
    data = [line.strip() for line in open(filename, 'r')]
    for line in data[1:]:
        lines += [line.split(",")]
    for lina in lines:
        dictionary[lina[0]] = (lina[1], lina[2])
    for key in sorted(dictionary.keys()):
        print("{0} : {1}".format(key, dictionary[key]))

1 个答案:

答案 0 :(得分:1)

你没有从你的功能中返回任何东西。 你必须添加

var layers = [CALayer](count: 60, repeatedValue: CALayer())

override func viewDidLoad() {
    super.viewDidLoad()

    // Access all layers
    for layer in layers {
        // Do something
    }

    // Access an individual layer
    layers[0].frame = CGRectZero     
}

return dictionary 定义的最后。由于它目前不返回任何内容,read_class_from_filestudents_dict