Seite 1 von 1

Inhalt einer Liste in eine andere einfügen

Verfasst: Mittwoch 24. Februar 2010, 16:15
von Tidde
Hallo,
ich hab mal folgende frage:
ich habe eine leere liste mit namen "spalte". in dieser liste spalte sind sieben leere listen drin. nun will ich in diese Liste den Inhalt einer anderen Liste "temp" einfügen, und zwar in jede untergeordneten liste einen anderen, aber immer aus der liste "temp". ich hab das mal so probiert:

Code: Alles auswählen

maxspalten=7 #dies soll aber später variabel sein (raw_input)
i=0
spalte=[]
temp=[]

while i<maxspalten:
    spalte.append([])
    temp=spalte[i]
    temp.append(random.randint(0,1))
    spalte[0]=temp
    i=i+1
das funktioniert leider noch nich ganz so wie ich mir das vorgestellt habe... :?

Edit (BlackJack): Quelltext in Code-Tags gesetzt.

Verfasst: Mittwoch 24. Februar 2010, 16:45
von EyDu
Hallo und willkommen im Forum!

Ich werde aus deiner Problemstellung irgendwie nicht ganz schlau, vielleicht solltest du mal ein Beispiel zeigen, wie die Situation vor dein Einfügen aussieht und wie danach.

Das Forum unterstütz übrigens auch Python-Code-Tags, in welche du deinen Code einbetten solltest. Wie dir vielleicht schon aufgefallen ist, ist Einrückung wichtig und in deinem Post vollkommen verloren gegangen.

Stat deiner while-Schleife solltest du übrigens besser for benutzen. Die hast du nur nachprogrammiert ;-)

Bis dann
Sebastian

Verfasst: Mittwoch 24. Februar 2010, 17:35
von BlackJack
@Tidde: Das sieht extremst umständlich aus. Die vorletzte Zeile sieht auch etwas verdächtig aus. Wenn die erste und die letzte `spalte` die selbe Liste referenzieren sollen, dann kann man das auch *einmal* *nach* der Schleife machen.

Das was Du da *jetzt* hast, könnte man auch so ausdrücken:

Code: Alles auswählen

max_columns = 7
columns = [[random.randint(0, 1)] for dummy in xrange(max_columns)]
columns[0] = columns[-1]

Verfasst: Donnerstag 25. Februar 2010, 10:55
von dahaze
Hallo Tidde!

Nachdem ich jetzt über 10 min deine Problembeschreibung angeschaut habe, versuch ich diese mal neu zu interpretieren und lass den geposteten Code mal ausser acht... :roll:

Meinst du vielleicht sowas? :wink:

Code: Alles auswählen

import random

spaltenanzahl = 7
inhalt = ['a','b','c','d']
spalten = [[inhalt[random.randint(0,len(inhalt)-1)]] for dummy in xrange(spaltenanzahl)]
print spalten
Ergebnis:

Code: Alles auswählen

[['c'], ['b'], ['d'], ['c'], ['b'], ['b'], ['d']]
Gruß,
dahaze

PS: @all: Vielleicht gibts für sowas auch ne fest eingebaute Funktion. Mir ist leider nur grad nix Anderes eingefallen. Wenn ja, bitte korrigieren....

Verfasst: Donnerstag 25. Februar 2010, 11:15
von BlackJack
@dahaze: ``inhalt[random.randint(0,len(inhalt)-1)]`` → ``random.choice(inhalt)``

Verfasst: Freitag 26. Februar 2010, 08:24
von dahaze
Danke BlackJack!
Ich war mir eigentlich sicher dass es sowas gibt, war jedoch zu faul die Doku von random durchzuackern^^ :wink:

Verfasst: Freitag 26. Februar 2010, 08:28
von BlackJack
@dahaze: Ach Du meine Güte! "Sich-die-Doku-vorlesen-lassen-zu-wollen" scheint also ansteckend zu sein. ;-)

Verfasst: Freitag 26. Februar 2010, 08:48
von cofi
Au ja! BlackJack haelt Maerchen^H Doku-Stunde :twisted:

Verfasst: Freitag 26. Februar 2010, 13:43
von BlackJack
Hm, haben wir jemanden mit einer guten "Vorlesestimme" hier? Nach der Übersetzung des Tutorials, könnte ein "Hörbuch" davon doch ein nettes nächstes Ziel sein. :-)

Verfasst: Freitag 26. Februar 2010, 14:51
von dahaze
Ob die Doku als Hörbuch so effektiv ist? Naja, ich weiss nicht.... :wink:
Ich hätt natürlich auch schreiben können. "Ich hatte grad keine Doku da und das Internet war in diesem Moment auch kaputt!" :mrgreen:

Verfasst: Freitag 26. Februar 2010, 17:46
von EyDu
dahaze hat geschrieben:"Ich hatte grad keine Doku da und das Internet war in diesem Moment auch kaputt!"
Ach, da hat wohl wieder jemand bei Google als Anfrage "Google" eingegeben ^^