当我想要一个列表的随机项时,我通常会这样做:
import random
random.randint(0, len(array)-1)
(然后将其作为列表的索引)
但是,我想知道执行以下操作是否更有效/更好:
import random
random.randint(1, len(array)) -1
执行时间是否有任何影响,或者更好的做法,一般是使用一个而不是另一个?
答案 0 :(得分:4)
您可以使用类似范围的random.randrange(..)
:
import random
random.randrange(len(array)) # OR random.randrange(0, len(array))
甚至更好,使用更可读的random.choice
,它会从序列中返回随机元素:
random.choice(array)
答案 1 :(得分:2)
choice
存在:尝试
random.choice(your_list) # returns a random element from the list
答案 2 :(得分:0)
运行一些测试(循环,使用每种技术生成100,000个长):
方法1(random.randint(1,len(lst)-1)
)
14.73
14.81
15.04
14.71
Average: 14.8225
方法2(random.randint(1,len(lst))-1
)
14.94
14.91
14.85
14.85
Average: 14.8875
所以他们基本上花了相同的时间 - 差异几乎肯定是随机的 - 链接到我电脑上的其他活动。