我不理解从randint方法的retuen值中减去1来获得随机数的原因,有人可以向我解释这个吗?
import random
def random_item(iterable):
randomIndex= random.randint(0, len(iterable))-1
item=iterable[randomIndex]
return item
答案 0 :(得分:1)
randint 包含 上限:
返回一个随机整数N,使得< = N< = b。
如果您使用iterable[len(iterable)]
,您将获得 IndexError ,因此random.randint(0, len(iterable)) - 1
确保如果您获得的随机int等于不会发生的迭代的长度。
另一方面,使用random.choice(iterable)
是一个更好的主意,并且无需担心索引错误,尽管您获得当前实现的最后一个元素的可能性稍高,可能是也可能不是故意的。