可以打印正确答案但无法返回正确答案

时间:2018-03-16 17:25:21

标签: python jupyter-notebook

我正在浏览一个早期的dataquest Python问题,这是他们的解决方案

def read_csv(filename):
    string_data = open(filename).read()
    string_list = string_data.split("\n")[1:]
    final_list = []

    for row in string_list:
        string_fields = row.split(",")
        int_fields = []
        for value in string_fields:
            int_fields.append(int(value))
        final_list.append(int_fields)
    return final_list
         cdc_list = read_csv("US_births_1994-2003_CDC_NCHS.csv")

我选择了一个涉及递归的解决方案

data = open('US_births_1994-2003_CDC_NCHS.csv','r').read().split('\n')

def read_csv(dataset, header = False):
    if header == True:
        newdataset = dataset[1:len(dataset)]
        read_csv(newdataset)
    else:
        return_data = []
        for each in dataset:
            split_data = each.split(',')
            int_data = []
            for each in split_data:
                int_data.append(int(each))
            return_data.append(int_data)
        return(return_data)

cdc_list = read_csv(data, header = True)

我的回答没有返回cdc_list的任何值。但是,当我从

更改最后一行时
return(return_data) 

print(return_data)

我能够看到答案中列出的正确结果。

1 个答案:

答案 0 :(得分:0)

Model._validateIncludedElements.bind(models.Table)(queryOptions); 的分支不返回任何值,只调用header == True。在该开始块中,尝试更改:

read_csv()

read_csv(newdataset)