如何从列表中随机返回一个元素?

时间:2018-11-08 17:17:10

标签: python-3.x

在此问题中,我们被要求从列表中随机返回一个元素。其中“ rand()”从0到1均匀分布。“ list”是元素列表

2 个答案:

答案 0 :(得分:-1)

def r(lst):
    return lst[int(random.uniform(a=0,b=1)*len(lst))]

但是random.choice()更易于使用

Knowledge Center

答案 1 :(得分:-1)

您应该在问题中提及是否有多个答案可供选择。

  1. Comparable

    这是正确的答案。将元素return list[int(len(list)*rand())]的数量与0到1之间的随机数相乘,得出len(list)0之间的随机数。您使用len(list)将值转换为整数,有效地将其舍入,然后在该位置选择项目。

  2. int()

    这不起作用。 return list[(len(list)/rand())]通常是一个大于1的整数,然后将其除以0到1之间的数字总是得到更大的数字,因此您总是尝试获取列表中最后一个项目之后的项目。同样,索引将是浮点数,但索引必须是整数

  3. len(list)

    这将始终选择第一个元素。这是一个介于0和1之间的四舍五入的随机数=> 0

  4. return list[int(rand()) # i assume you wanted to use a square bracket here

    这将始终尝试选择最后一个元素之后的元素,这会导致错误。而且,没有rand()函数,甚至不能是随机的...