2016-11-16 97 views
1

該函數返回一個單一的國家和人口,但我需要返回所有人口在列,但跳過第6行變函數返回整列

def findpop(state=None): 
    f = open(getMediaPath("population_state_reduced (2).csv"), "rt") 
    index = 1 
    for line in f: 
     if index > 3: 
      parts = line.split(',') 
      if state is None: 
       return [(parts[4], int(parts[5]))] 
      else: 
       for line in f: 
        if parts[4] == state.capitalize(): 
         return int(parts[5]) 
     index += 1 

print findpop() 

回答

1

如果我明白你正確的,這是正是你想要的:

import csv 

def findpop(state=None): 
    res = [] 
    with open(getMediaPath("population_state_reduced (2).csv")) as f: 
     reader = csv.reader(f) 
     for i, line in enumerate(reader): 
      if i > 5: # skip first 6 rows 
       if state is None: 
        res.append((line[4], int(line[5]))) 
       else: 
        if line[4] == state.capitalize(): 
         return int(line[5]) 
    return res