我正在浏览一个早期的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)
我能够看到答案中列出的正确结果。
答案 0 :(得分:0)
Model._validateIncludedElements.bind(models.Table)(queryOptions);
的分支不返回任何值,只调用header == True
。在该开始块中,尝试更改:
read_csv()
到
read_csv(newdataset)