Paare aus 2 Listen bilden
@pixewakb: Den Funktionskopf hat Chilla258 falsch abgeschrieben. Der lautet im Original ``def product(*args, **kwds):``.
das »schöne« an Paarebilden ist ja, dass es zwar ein Generator ist, das Ergebnis aber trotzdem
vollständig zuerst erzeugt wird. Generatoren ad absurdum geführt.
@Chilla258: solange Du noch nicht sicher mit Listen umgehen kannst, solltest Du die Finger von
Generatoren, variablen Parametern und ähnlichem lassen. Der Fall für 2 Listen ist für den Anfang
kompliziert genug.
vollständig zuerst erzeugt wird. Generatoren ad absurdum geführt.
@Chilla258: solange Du noch nicht sicher mit Listen umgehen kannst, solltest Du die Finger von
Generatoren, variablen Parametern und ähnlichem lassen. Der Fall für 2 Listen ist für den Anfang
kompliziert genug.
also, wie schon gesagt: ich hab die funktion anhand des links geschrieben. praktisch def product... "übernommen" und den verschiedenen teilen meine namen gegeben. dass das ganze mit einem generator funktioniert, war mir bis dahin noch nicht klar
hab ich auch noch nie gemacht....
die sache ist die, dass ich diese funktion so schnell wie möglich zum laufen kriegen MUSS
das andere ist.....meine beiden argumente bestehen aus je einer LISTE.
mein ergebnis soll in einer liste aus tupeln ausgegeben werden wie ich es in meinem ersten beispiel schon angegeben habe.

die sache ist die, dass ich diese funktion so schnell wie möglich zum laufen kriegen MUSS

das andere ist.....meine beiden argumente bestehen aus je einer LISTE.
mein ergebnis soll in einer liste aus tupeln ausgegeben werden wie ich es in meinem ersten beispiel schon angegeben habe.
@Chilla258: Du weißt wie man Listen erzeugt?
Du weißt wie man über Listen iteriert?
Du weißt wie man Tuple erzeugt?
Dann mußt Du nur über beide Listen verschachtelt iterieren und jeweils aus den beiden Listelementen ein Tuple erzeugen und in die Ergebnisliste schreiben.
Du weißt wie man über Listen iteriert?
Du weißt wie man Tuple erzeugt?
Dann mußt Du nur über beide Listen verschachtelt iterieren und jeweils aus den beiden Listelementen ein Tuple erzeugen und in die Ergebnisliste schreiben.
eine liste erstellen kann ich. liste = ["ja","nein","bla",.....]
über eine liste iterieren würde ich so: for abc in liste:
mit tuple bin ich noch nicht so ganz vertraut. ich glaube mein problem ist diese 2 listen verschachtelt als eine aus tupeln bestehende liste auszugeben.
über eine liste iterieren würde ich so: for abc in liste:
mit tuple bin ich noch nicht so ganz vertraut. ich glaube mein problem ist diese 2 listen verschachtelt als eine aus tupeln bestehende liste auszugeben.
Zwei for-Schleifen ineinander geschachtelt schreibt man einfach wie zwei for-Schleifen ineinander:
Code: Alles auswählen
for elem1 in liste1:
for elem2 in liste2:
print(elem1,elem2)
angenommen ich mach das dann in etwa so:
dann gibt es mir alles richtig aus, wenn ich die funktion dann "selbst" ausführe.
um die funktion weiter verwenden zu können, müsste ich das print durch ein return ersetzen...kann das sein?
allerdings brauche ich mein ergebnis als eine liste von tupeln....also muss ich das noch irgendwie definieren.
aber wie sage ich python, dass er mir das ergebnis nicht nur als tuple ausgeben soll, sondern als eine liste dessen?
das bekomme ich einfach nicht hin....ich denke daran liegt im moment mein größtes problem
Code: Alles auswählen
def PaareBilden(liste1,liste2):
for elem1 in liste1:
for elem2 in liste2:
print (elem1,elem2)
um die funktion weiter verwenden zu können, müsste ich das print durch ein return ersetzen...kann das sein?
allerdings brauche ich mein ergebnis als eine liste von tupeln....also muss ich das noch irgendwie definieren.
aber wie sage ich python, dass er mir das ergebnis nicht nur als tuple ausgeben soll, sondern als eine liste dessen?
das bekomme ich einfach nicht hin....ich denke daran liegt im moment mein größtes problem
Schau mal den Thread durch. Ich hatte dir dazu schon einen passenden Code gepostet.
Das Problem liegt momentan wohl daran, dass du kein Tutorial richtig durchgearbeitet hast. Das erstellen von Listen sind absolute Grundlagen. Lasse dein Problem also erstmal liegen und beschäftige dich mit den Basics.
Das Leben ist wie ein Tennisball.
ich habs 
na endlich....ich bin ja echt ein schwieriger fall

Code: Alles auswählen
def PaareBilden(liste1,liste2):
for elem1 in liste1:
for elem2 in liste2:
paar = elem1, elem2
ergebnisListe.append(paar)
return ergebnisListe
#liste
ergebnisListe = []
# Beispiel
print PaareBilden(["a","b"],["c","d"])

Code: Alles auswählen
[('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd')]
bis auf die Tatsache, dass es falsch ist. Wenn Du zwei mal PaareBilden aufrufst, merkstChilla258 hat geschrieben:ich habs
Du auch warum. ergebnisListe ist bei Dir eine globale Variable!
Hier noch die Python-Variante:
Code: Alles auswählen
def PaareBilden(liste1,liste2):
return [(elem1, elem2) for elem1 in liste1 for elem2 in liste]
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Du solltest Dir aber von Anfang an angewöhnen, von Anfang an sinnvoll zu programmieren. Sonst gewöhnst Du Dir falsche Muster an, die es Dir später schwerer machen, Dir das wieder abzugewöhnen. Vor allem solltest Du verstehen, *wieso* Deine Lösung suboptimal istChilla258 hat geschrieben: es erfüllt doch seinen zweck einmal zu funktionieren

encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ich tippe auf eine wissenschaftliche Qualifizierungsschrift - z. B. Diplom oder Examen??? Wahrscheinlich soll das Skript hier für Testreihen oder Datenmaterial in der qualitativen Sozialforschung automatisiert eine Auswertung erledigen.
Das Problem ist einfach: Wenn du in deinem Skript einen Bug hast, weil du den Quellcode nicht verstehst und ihn nicht testen kannst, dann könnten sich Fehler einschleichen, die du erst einmal in deine Arbeit übernimmst. Es wäre schon besser, wenn du den Quellcode verstehen würdest...
Das Problem ist einfach: Wenn du in deinem Skript einen Bug hast, weil du den Quellcode nicht verstehst und ihn nicht testen kannst, dann könnten sich Fehler einschleichen, die du erst einmal in deine Arbeit übernimmst. Es wäre schon besser, wenn du den Quellcode verstehen würdest...