从randint返回值中减去1的原因是什么?

时间:2016-10-16 22:38:47

标签: python-3.x

我不理解从randint方法的retuen值中减去1来获得随机数的原因,有人可以向我解释这个吗?

import random

def random_item(iterable):
    randomIndex= random.randint(0, len(iterable))-1
    item=iterable[randomIndex]
    return item

1 个答案:

答案 0 :(得分:1)

randint 包含 上限

返回一个随机整数N,使得< = N< = b。

如果您使用iterable[len(iterable)],您将获得 IndexError ,因此random.randint(0, len(iterable)) - 1确保如果您获得的随机int等于不会发生的迭代的长度。

另一方面,使用random.choice(iterable)是一个更好的主意,并且无需担心索引错误,尽管您获得当前实现的最后一个元素的可能性稍高,可能是也可能不是故意的。