Referenzartikel: Alle Elemente verschieben sich (bleiben nicht in derselben Position) mischen Ich dachte, es wäre unhöflich, die Artikel anderer Leute so oft zu kommentieren, also machte ich einen anderen Artikel.
Ich habe so etwas geschrieben. Eine Funktion, die eine gemischte Liste zurückgibt.
python
import random
def shuffle_all_move( items ):
length = len( items )
res = [ 0 ] * length
rand_ord = random.sample( range( length ), k=length )
for i in range( length ) :
res[ rand_ord[ i ] ] = items[ rand_ord[ ( i + 1 ) % length ] ]
return res
Ich fragte mich, was passieren würde, wenn ich das im Lambda-Stil schreiben würde.
Apropos,
Ergebnisse verschiedener Studien:
`[]` `beschränkt. Wenn es`
() `` ist, wird es zu einem Generator und jedes Element wird nicht ausgewertet.)Es war das.
python
import random
shuffle_all_move = ( lambda items :
( lambda
length = len( items )
, res = [ 0 ] * len( items )
, rand_ord = random.sample( range( len( items ) ), k=len( items ) )
:
(
[ ( res.pop( rand_ord[ i ] )
, res.insert(rand_ord[ i ], items[ rand_ord[ ( i + 1 ) % length ] ])
) for i in range( length )
]
, res
)[-1]
)()
)
Recommended Posts