는이 기본 구현보다 더 나은 수행 할 수 있습니다튜플에서 무작위 요소를 얻는 가장 빠른 방법은 무엇입니까? (파이썬)
이import random
def get_random_element(_tuple):
return _tuple[randint(0, len(_tuple) - 1)]
는이 기본 구현보다 더 나은 수행 할 수 있습니다튜플에서 무작위 요소를 얻는 가장 빠른 방법은 무엇입니까? (파이썬)
이import random
def get_random_element(_tuple):
return _tuple[randint(0, len(_tuple) - 1)]
>>> import random
>>> x = tuple(range(100))
>>> random.choice(x)
8
을 @Updated S. Lot가 물었다. t :
def first(_tuple):
return _tuple[randint(0, len(_tuple) - 1)]
def second(_tuple):
return choice(_tuple)
print timeit('first(t)', 'from __main__ import first; t = tuple(range(10))')
print timeit('second(t)', 'from __main__ import second; t = tuple(range(10))')
출력 :
2.73662090302
1.01494002342
사용 random.choice :로 http://docs.python.org/library/random.html#random.choice
random.choice(_tuple)
하지만이 빨리입니까? 당신이 측정 했습니까? 'timeit'을 사용하여 어느 것이 더 빠름을 보여줄 수 있습니까? –
@S. Lott : – user225312
을 업데이트하면'random.randrange'를 사용하는 것이 더 좋습니다. – SilentGhost