Seite 2 von 2

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 09:29
von BlackJack
@pixewakb: Den Funktionskopf hat Chilla258 falsch abgeschrieben. Der lautet im Original ``def product(*args, **kwds):``.

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 09:48
von Sirius3
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.

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 14:05
von Chilla258
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.

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 14:20
von Sirius3
@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.

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 14:29
von Chilla258
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.

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 14:36
von Sirius3
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)

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 14:52
von Chilla258
angenommen ich mach das dann in etwa so:

Code: Alles auswählen

def PaareBilden(liste1,liste2):
     for elem1 in liste1:
          for elem2 in liste2:
               print (elem1,elem2)
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

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 14:55
von pixewakb
Schau mal den Thread durch. Ich hatte dir dazu schon einen passenden Code gepostet.

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 14:56
von EyDu
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.

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 15:02
von Chilla258
ich habs :)

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"])
na endlich....ich bin ja echt ein schwieriger fall :(

Code: Alles auswählen

[('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd')]

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 15:08
von Chilla258
vieleeeeen dank für eure geduld und eure hilfe :) hätte ich alleine niemals geschafft....jetzt gehts an die nächste funktion!

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 15:16
von Sirius3
Chilla258 hat geschrieben:ich habs :)
bis auf die Tatsache, dass es falsch ist. Wenn Du zwei mal PaareBilden aufrufst, merkst
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]

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 21:31
von Chilla258
naja, ich brauch es in meinem programm später nur genau einmal. dafür müsste das so doch reichen, oder nicht?!
es erfüllt doch seinen zweck einmal zu funktionieren

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 22:36
von Hyperion
Chilla258 hat geschrieben: es erfüllt doch seinen zweck einmal zu funktionieren
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 ist ;-)

Re: Paare aus 2 Listen bilden

Verfasst: Donnerstag 3. Januar 2013, 23:02
von pixewakb
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...