Scramble Python List Scramble Python List arrays arrays

Scramble Python List


def scrambled(orig):    dest = orig[:]    random.shuffle(dest)    return dest

and usage:

import randoma = range(10)b = scrambled(a)print a, b

output:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [6, 0, 2, 3, 1, 7, 8, 5, 4, 9]


Use sorted(). It returns a new list and if you use a random number as key, it will be scrambled.

import randoma = range(10)b = sorted(a, key = lambda x: random.random() )print a, b

Output:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [5, 9, 0, 8, 7, 2, 6, 4, 1, 3]


Copy the array then scramble it:

import randomarray = range(10)   newarr = array[:] # shallow copy should be fine for thisrandom.shuffle(newarr)#return newarr if needs be.zip(array, newarr) # just to show they're differentOut[163]:[(0, 4), (1, 8), (2, 2), (3, 5), (4, 1), (5, 6), (6, 0), (7, 3), (8, 7), (9, 9)]