Ich kann nicht verstehen, wie alle Elemente zurück mit diesem Code:Python alle Elemente aus der Schleife zurückgeben?
@staticmethod
def create_dataset():
cols = Colleagues.get_all_colleagues()
cols_abs = ((col['Firstname'] + " " + col['Surname'], col['Absences']) for col in cols)
for col in cols_abs:
dataset = list()
sum_days = list()
for d in col[1]:
start_date = d[0]
end_date = d[1]
s = datetime.strptime(start_date, "%Y-%m-%d")
e = datetime.strptime(end_date, "%Y-%m-%d")
startdate = s.strftime("%b-%y")
days = numpy.busday_count(s, e) + 1
sum_days.append(days)
days_per_month = startdate, days
dataset.append(days_per_month)
dict_gen1 = dict(dataset)
comb_days = sum(sum_days)
dict_gen2 = {'Name': col[0], 'Spells': len(col[1]), 'Total(Days)': comb_days}
dict_comb = [{**dict_gen1, **dict_gen2}]
return dict_comb
Es gibt nur die erste „col“. Wenn ich die return-Anweisung außerhalb der Schleife verschiebe, wird nur das letzte Element in meiner Datenmenge zurückgegeben. Dies ist die Ausgabe, die von col_abs zurückgegeben:
('Jonny Briggs', [['2015-08-01', '2015-08-05'], ['2015-11-02', '2015-11-06'], ['2016-01-06', '2016-01-08'], ['2016-03-07', '2016-03-11']])
('Matt Monroe[['2015-12-08', '2015-12-11'], ['2016-05-23', '2016-05-26']])
('Marcia Jones', [['2016-02-02', '2016-02-04']])
('Pat Collins', [])
('Sofia Marowzich', [['2015-10-21', '2015-10-30'], ['2016-03-09', '2016-03-24']])
('Mickey Quinn', [['2016-06-06', '2016-06-08'], ['2016-01-18', '2016-01-21'], ['2016-07-21', '2016-07-22']])
('Jenifer Andersson', [])
('Jon Fletcher', [])
('James Gray', [['2016-04-01', '2016-04-06'], ['2016-07-04', '2016-07-07']])
('Matt Chambers', [['2016-05-02', '2016-05-04']])
Kann mir jemand helfen, diese besser zu verstehen, wie ich ein „dict_comb“ für jeden Eintrag in col_abs zurückkehren will?
Wenn ich anstelle einer Rückgabeanweisung gebe, die mir genau die Ausgabe gibt, die ich beim Drucken nach dem Schleifen über das Generatorobjekt brauche, muss ich irgendwie dieses Ergebnis ausgeben, damit ich es als Daten in einer anderen Methode verwenden kann? – MattE