它只显示list的第一个元素。任何人都可以告诉我错误是什么?

时间:2017-01-26 10:39:39

标签: python data-science

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的第一个元素。我无法找到错误

1 个答案:

答案 0 :(得分:0)

这是因为你的缩进。当您阅读代码后,您会看到return value中的string_listdef 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])

}

将你的返回4个空格向左移动它应该有效:

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)

更短的版本:

    public double score { get; set; }
}

class Student
{
    public int _id { get; set; }

    public string name { get; set; }

    public List<Score> scores { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        MainAsync(args).Wait();
        Console.WriteLine();
        Console.WriteLine("press enter");
        Console.ReadLine();
    }

    static async Task MainAsync(string[] args)
    {
        var client = new MongoClient();
        var db = client.GetDatabase("school");
        var col = db.GetCollection<Student>("students");

        var filter = Builders<Student>.Filter.Eq("scores.type", "homework");
        await col.Find(filter)
            .ForEachAsync(c => Console.WriteLine(c));
    }
}