2016-11-16 2 views
1

Die Funktion gibt einen einzigen Staat und Bevölkerung, aber ich brauche, um alle Bevölkerungsgruppen in einer Spalte zurück, sondern über die ersten sechs ReihenÄnderungsfunktion zurückzukehren gesamte Spalte

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() 

Antwort

1

überspringen Wenn ich Sie verstanden korrigieren ist genau was du willst:

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 
Verwandte Themen