Übergabe gleichzeitig mehrerer Datensätze an eine Funktion

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hartmannsgruber
User
Beiträge: 89
Registriert: Mittwoch 15. Januar 2014, 22:30
Wohnort: Bad Kötzting
Kontaktdaten:

Servus Forum,

mir stellt sich seit heute Morgen nachfolgende Frage, für die sich mir keine Lösung erschließt.

1. Ein Funktion benötigt bestimmte Argumente für einen Aufruf.
2. Die Funktion soll aber mit 1-x Datensätze auf einmal aufgerufen werden können,
da in der Funktion über eine for - Schleife iteriert wird.

Soetwas in der Art:

Code: Alles auswählen

def foo(vname="Max, nnachname="Mustermann):
	for datensatz in uebergebenen_datensaetze:
		print(vname, nnachname)
		
foo(*(("Hein", "Blöd"), ("Benjamin", "Blümchen")))


Die Funktionion nacheinander mit den Datensätzen aufzurufen wäre zwar logisch und einfach.

Code: Alles auswählen

ds = (("Hein", "Blöd"), ("Benjamin", "Blümchen"))

for satz in ds:
	foo(satz[o], satz[1])
Wie löse ich es aber, wenn die Datensätze beispielsweise darin miteinander verglichen werden,
oder eine andere Operation darauf ausgeführt wird die mehr als einen Datensatz auf einmal benötigt?
Ist mein Gedankengang nachvollziehbar?

LG
Pferdesalbe
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Lösung hat du dir doch schon selbst gegeben. Du übergibst die Datensätze in einer passenden Datenstruktur, z.B. einer Liste.
Was auch immer ein vname und ein nnachname ist, benutze keine kryptischen Abkürzungen.
Hartmannsgruber
User
Beiträge: 89
Registriert: Mittwoch 15. Januar 2014, 22:30
Wohnort: Bad Kötzting
Kontaktdaten:

Also wird von der Funktion nur ein Argument erwartet, dass den/die Datensätz/e enthält und die Datensätze müssen die benötigten Argumente aufweisen, bzw. die Reihenfolge einhalten?
Rotmilan
User
Beiträge: 32
Registriert: Mittwoch 30. Dezember 2020, 21:59
Wohnort: Nordbayern

Genau, den ganzen Datensatz per Liste übergeben, dann kannst du über in der Funktion über die Liste iterieren. Du musst dir dann nur noch überlegen, was der Rückgabewert sein soll - könnte dann ja auch eine Bibliothek sein...
Antworten