Hey,
Ich muss 3 Werte aus einer bestehenden Liste extrahieren und jeweils als Liste zurück geben.
was ich bis jetzt habe: (überall wo das # ist fehlt mir etwas) wäre lieb wenn jmd mir helfen könnte
def get_data_for_country(filename,country):
file=open(filename)
info_line=file.readline()
years=[]
prod_in_t=[]
area_in_ha=[]
for line in file:
line.split(sep=',')
if line[1] == country:
#
year=line[]
prod=line[]
area=line[]
#
file.close()
return years, prod_in_t, area_in_ha
Werte extrahieren und jeweils als Liste zurück geben
Dateien öffnet man in einem with-Statement. Bei Text-Dateien sollte man auch immer das passende Encoding angeben.
Statt drei parellele Listen zu führen, nimmt man nur eine Liste und steckt in die komplexere Objekte. Das Ergebnis Deines splits mußt Du auch in einer Variable speichern ›parts = line.split(',')‹.
Es scheint sich ja um eine csv-Datei zu handeln, also benutzt man das csv-Modul
Den Aufbau der einzelnen Zeilen weißt ja nur Du selbst.
Statt drei parellele Listen zu führen, nimmt man nur eine Liste und steckt in die komplexere Objekte. Das Ergebnis Deines splits mußt Du auch in einer Variable speichern ›parts = line.split(',')‹.
Es scheint sich ja um eine csv-Datei zu handeln, also benutzt man das csv-Modul
Code: Alles auswählen
import csv
from collections import namedtuple
CountryData = namedtuple("CountryData", "year, production_in_t, area_in_ha")
def get_data_for_country(filename,country):
with open(filename, newline="", encoding="utf8") as file:
lines = csv.reader(file)
info_line = next(lines)
result = []
for row in lines:
if row[1] == country:
year = ...
production = ...
area = ...
result.append(CountryData(year, production, area))
return result