首页 > 解决方案 > 如何从列表中随机返回一个元素?

问题描述

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

标签: python-3.x

解决方案


如果有多个答案可供选择,您应该在问题中提及。

  1. return list[int(len(list)*rand())]

    这是正确的答案。将元素的数量乘以len(list)0 到 1 之间的随机数会得到一个介于0和之间的随机数len(list)。您用于int()将值转换为整数,有效地将其向下舍入,然后选择该位置的项目。

  2. return list[(len(list)/rand())]

    这行不通。len(list)通常是一个大于 1 的整数,除以 0 到 1 之间的数字总是会得到更大的数字,因此您总是尝试获取列表中最后一个之后的项目。索引也是浮点数,但索引必须是整数

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

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

  4. return list[len(list)} # same thing here

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


推荐阅读