它只显示 list.Can 的第一个元素 谁能告诉我错误是什么?

It is displaying only the first element of list.Can anyone tell me what the error is?

def read_csv(file_name):
    f=open(file_name).read()
    lis=f.split("\n")
    string_list=lis[1:len(lis)-1]
    final_list=[]
    for a in string_list:
        string_fields=a.split(",")
        int_field=[];    
        for value in string_fields:
            int_field.append(int(value))
        final_list.append(int_field)
        return(final_list)
cdc_list=read_csv("US_births_1994-2003_CDC_NCHS.csv")
print(cdc_list[0:10])

这只显示了 cdc 的第一个元素list.I我找不到错误

这是因为你的缩进。当您阅读您的代码时,您会看到,在 string_list

中的第一个 value 之后,您从函数中 return

将你的 return 向左移动 4 个空格,它应该可以工作:

def read_csv(file_name):
    f=open(file_name).read()
    lis=f.split("\n")
    string_list=lis[1:len(lis)-1]
    final_list=[]
    for a in string_list:
        string_fields=a.split(",")
        int_field=[];    
        for value in string_fields:
            int_field.append(int(value))
        final_list.append(int_field)
    return(final_list)
cdc_list=read_csv("US_births_1994-2003_CDC_NCHS.csv")
print(cdc_list[0:10])

较短的版本:

def read_csv(file_name):
    with open(file_name) as f:
        #read lines
        lines = [line.strip() for line in f.readlines()]
        #remove header
        lines = lines[1:]
        # split lines and cast to integer
        lines = [[int(val) for val in line.split(',')] for line in lines]
    return(lines)