Seite 1 von 1

shuffle

Verfasst: Samstag 29. November 2008, 14:28
von lipflop
Hallo

bin ein neuer Python-Anfänger .. habe mir ein kleines Programm geschrieben das test.py heißt:

Code: Alles auswählen

links=["ich","laufe","hause","keine ahnung","komisch"]
links=shuffle(links)

print links[0]
in der Kommandozeile sagte er mir aber das shuffle nicht definiert sei ...

was ist falsch ?
vielen dank für eure hilfe ;)

lg phil

Verfasst: Samstag 29. November 2008, 14:47
von cofi
Nuja das Problem ist eben, dass `shuffle' nicht definiert ist.

Wenn du random.shuffle meinst, dann musst du das so machen:

Code: Alles auswählen

import random
links = ["ich", "laufe", "hause", "keine ahnung", "komisch"]
links = random.shuffle(links)

print links[0]

Verfasst: Samstag 29. November 2008, 14:52
von numerix
cofi hat geschrieben:Nuja das Problem ist eben, dass `shuffle' nicht definiert ist.

Wenn du random.shuffle meinst, dann musst du das so machen:

Code: Alles auswählen

import random
links = ["ich", "laufe", "hause", "keine ahnung", "komisch"]
links = random.shuffle(links)

print links[0]
Das Problem ist auch, dass shuffle keine gemischte Liste zurückliefert, sondern in-place mischt ... :wink:

Verfasst: Samstag 29. November 2008, 15:58
von lipflop
ok mit random.shuffle klappt es leider auch nicht ...

also ich möchte zufällig ein wert aus der liste auswählen .. wie mache ich das nun am besten ?

lg phil

Verfasst: Samstag 29. November 2008, 16:03
von Klip
random.choice() ;)

Verfasst: Samstag 29. November 2008, 16:04
von numerix
lipflop hat geschrieben:ok mit random.shuffle klappt es leider auch nicht ...

also ich möchte zufällig ein wert aus der liste auswählen .. wie mache ich das nun am besten ?

lg phil
Doch, sicher klappt es mit random.shuffle.
Du hast aber anscheinend meine Bemerkung im letzten Post nicht verstanden.

Wenn es nur darum geht, ein Element auszuwählen, dann kannst du auch random.choice() verwenden.

In jedem Fall empfehle ich dir einen Blick in die Dokumentation des random-Moduls, damit du dann auch verstehst, warum es shuffle mit nicht so funktioniert, wie es jetzt da steht (aber eben anders ...). :wink:

Verfasst: Samstag 29. November 2008, 16:19
von lipflop
ich glaub langsam wird es mir etwas peinlich...

mit random.coice klappt es jetzt, und ich möchte ja auch nur zufällig ein element aus der liste auswählen ...

jetzt klappt das programm zwar, aber jetzt gibt er mir nur die anfangsbuchstaben aus... also i,h,k,l .. kann man mit irgendwas die sachen komplett darstellen

Verfasst: Samstag 29. November 2008, 16:25
von numerix
lipflop hat geschrieben:ich glaub langsam wird es mir etwas peinlich...

mit random.coice klappt es jetzt, und ich möchte ja auch nur zufällig ein element aus der liste auswählen ...

jetzt klappt das programm zwar, aber jetzt gibt er mir nur die anfangsbuchstaben aus... also i,h,k,l .. kann man mit irgendwas die sachen komplett darstellen
Du hast die Grundlagen von Python noch nicht verstanden. Das ist ohne vernünftige Lektüre kaum zu schaffen.

choice() liefert eben keine Liste, sondern nur ein Element der Liste. Wenn du trotzdem "links[0]" einsetzt, dann bekommst du eben nur den 1. Buchstaben, weil "links" eine Zeichenkette ist ...

Darum: LIES DAS TUTORIAL!

Verfasst: Samstag 29. November 2008, 17:04
von lipflop
Ok ich habe es jetzt hinbekommen ...

Werde mir auch mal die Tutorials anschauen;)

Vielen Dank und ein schönes Wochenende ;)

Verfasst: Samstag 29. November 2008, 17:25
von roschi
wie ich es schon so oft getan habe - ich kann nur 'byte of python' empfehlen!

lg
roschi