# opções para aleatoriedade em python # fonte: python-brasil http://bit.ly/dAmCPC # Se você estiver fazendo algo sério, e quiser uma implementação decente pra # essa geração de um vetor aleatório, deveria usar o Numpy. # # Postei um benchmark das soluções propostas e adicionei uma utilizando o # Numpy (http://paste.pocoo.org/show/187702/), seguem os tempos que deram para # mim: # # Tempo total (teste #1): 10.1679s # Tempo total (teste #2): 3.1838s # Tempo total (teste #3): 9.7410s # Tempo total (teste #4): 3.5267s # Tempo total (teste #5): 0.1241s --> este é o tempo utilizando o Numpy # # - Christian S. Perone from timeit import Timer from random import randint, shuffle, randint, sample from numpy.random import randint as numpy_randint SIZE = 200000 TIMES = 20 def test1(): vetor = [] for i in range(SIZE): i = randint(1, SIZE) vetor.append(i) def test2(): vetor = shuffle(range(1, SIZE+1)) def test3(): vetor = [randint(1, SIZE) for i in xrange(1, SIZE+1)] def test4(): vetor = sample(xrange(SIZE), SIZE) def test5(): vetor = numpy_randint(1, SIZE, SIZE) def test_method(num, times): t = Timer("test%d()" % num, "from __main__ import test%d" % num) print "Tempo total (teste #%d): %.4fs" % (num, t.timeit(times)) if __name__=='__main__': [test_method(i, TIMES) for i in xrange(1,6)]