random.shuffle bei tuppeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Hallo Leute,

wenn ich sowas:

Code: Alles auswählen

d = (   
            [1,["hallo1",0],["Hello1",0],["/picpath/pic1.jpg",0]],
            [2,["hallo2",0],["Hello2",0],["/picpath/pic2.jpg",0]],
            [3,["hallo3",0],["Hello3",0],["/picpath/pic3.jpg",0]],
            [4,["hallo4",0],["Hello4",0],["/picpath/pic4.jpg",0]],
            [5,["hallo5",0],["Hello5",0],["/picpath/pic5.jpg",0]]
        ) 
nach der vordersten Zahl geshuffelt haben will (also zufällig sortiert), wie bekomme ich das hin?

Code: Alles auswählen

import random
random.shuffle(d)
führt immer zu einem Fehler.. ich hab keine Ideen mehr. Weiß jemand Rat?

Danke und Grüße
alpha
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Ich weiß Rat, les die Fehlermeldung:

Code: Alles auswählen

TypeError: 'tuple' object does not support item assignment
und les die Dokumentation ;)

Mit Tupeln geht das ganze jedenfalls nicht, benutze eine Liste und gut ist.
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

Hallo,

ich hab auch eine Frage zu random.shuffle

und zwar: wie geht das eigentlich?

mein Problem ist folgendes:

Code: Alles auswählen

>>> import random
>>> k=range(11)
>>> print random.shuffle(k)
None
>>> # das sagt die helpfunktion auch vorraus:
>>> help(random.shuffle)
Help on method shuffle in module random:

shuffle(self, x, random=None, int=<type 'int'>) method of random.Random instance
    x, random=random.random -> shuffle list x in place; return None.


Aber wie kann ich die liste jetzt shuffeln??
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Pascal hat geschrieben:Hallo,

ich hab auch eine Frage zu random.shuffle

und zwar: wie geht das eigentlich?

mein Problem ist folgendes:

Code: Alles auswählen

>>> import random
>>> k=range(11)
>>> print random.shuffle(k)
None
>>> # das sagt die helpfunktion auch vorraus:
>>> help(random.shuffle)
Help on method shuffle in module random:

shuffle(self, x, random=None, int=<type 'int'>) method of random.Random instance
    x, random=random.random -> shuffle list x in place; return None.
Aber wie kann ich die liste jetzt shuffeln??
Na, die Lösung steht doch da: Die Liste wird "in place" durcheinandergewürfelt. Den Rückgabewert kannst du nicht gebrauchen.

Edit:
Lies das doch mal (ist auch ein Beispiel für shuffle dabei): http://docs.python.org/library/random.html
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

ja danke.

ja... klingt ja auch logisch ^^
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Ah.. alles klar.. was so ein ersetzen von ( in [ ausmacht :-)

Danke für den Tip

alpha
Antworten