AW: [Python-de] Mathematische Module-Kombinationen und Varianten

python-lists at duerer-sinclair.de python-lists at duerer-sinclair.de
Mon Apr 7 15:24:17 EDT 2003


On Mon, 7 Apr 2003, Josef Cihal wrote:
> ich kann nur diesen Teil nicht ganz verstehen...
>
> Danke für einen konkretes Beispiel:
>
> x = "abcd123"
> 	["".join([a,b,c]) for a in x for b in x for c in x]

Und ich weiss jetzt nicht, was Du nicht verstehst und was noch konkreter
sein soll...

Also:
	x = "abcd123"
Dies gibt der von Dir vorgegebenen Zeichenliste nur einen kurzen (wenn
auch wenig aussagekraeftigen) Namen.

	["".join([a,b,c]) for a in x for b in x for c in x]
Dies ist das tatsaechliche Erzeugen der Ergebnisliste.  Dies geschieht via
'List comprehension' (kann mich mal jemand daran erinnern, wie das auf dt.
heisst?).
Um das zu verehen fang erst mal mit einem leichten Bsp an:
	[a for a in x]
(d.h. alle 'a' fuer die gilt: 'a ist in x').

Da kann man aber auch mehr als eine Variable angeben.  Z.B.:
	[(a, b) for a in x  for b in x]
(d.h. alle Tupel a,b fuer die git 'a ist in x und b ist in x')

Wenn Du das jetzt mit drei variablen machts und aus denen nicht ein Tripel
sondern eine Liste baust sieht das so aus:
	[ [a, b, c]  for a in x  for b in x  for c in x]

Und dann haben wir schon fast das Ergebnis.  Du wolltest ja String und
keine Arrays, deshalb machen wir schnell aus einem Array einen String.
Dazu ist es hilfreich zu wissen, was die String.join() Methode macht.
Versuch einfach mal:
	print "-".join(['a', 'b', 'c'])
oder
	print "\n".join(['a', 'b', 'c'])
oder eben
	print "".join(['a', 'b', 'c'])

Tja und wenn Du das alles dann zusammenbringst kommst Du zu der Zeile, die
Du nicht verstanden hast...


	Holger






More information about the Python-de mailing list