在此问题中,我们被要求从列表中随机返回一个元素。其中“ rand()”从0到1均匀分布。“ list”是元素列表
答案 0 :(得分:-1)
def r(lst):
return lst[int(random.uniform(a=0,b=1)*len(lst))]
但是random.choice()
更易于使用
答案 1 :(得分:-1)
您应该在问题中提及是否有多个答案可供选择。
Comparable
这是正确的答案。将元素return list[int(len(list)*rand())]
的数量与0到1之间的随机数相乘,得出len(list)
和0
之间的随机数。您使用len(list)
将值转换为整数,有效地将其舍入,然后在该位置选择项目。
int()
这不起作用。 return list[(len(list)/rand())]
通常是一个大于1的整数,然后将其除以0到1之间的数字总是得到更大的数字,因此您总是尝试获取列表中最后一个项目之后的项目。同样,索引将是浮点数,但索引必须是整数
len(list)
这将始终选择第一个元素。这是一个介于0和1之间的四舍五入的随机数=> 0
return list[int(rand()) # i assume you wanted to use a square bracket here
这将始终尝试选择最后一个元素之后的元素,这会导致错误。而且,没有rand()函数,甚至不能是随机的...