python-3.x - 如何从列表中随机返回一个元素?
问题描述
在这个问题中,我们被要求从列表中随机返回一个元素。其中“rand()”从 0 到 1 均匀分布。“list”是元素列表
解决方案
如果有多个答案可供选择,您应该在问题中提及。
return list[int(len(list)*rand())]
这是正确的答案。将元素的数量乘以
len(list)
0 到 1 之间的随机数会得到一个介于0
和之间的随机数len(list)
。您用于int()
将值转换为整数,有效地将其向下舍入,然后选择该位置的项目。return list[(len(list)/rand())]
这行不通。
len(list)
通常是一个大于 1 的整数,除以 0 到 1 之间的数字总是会得到更大的数字,因此您总是尝试获取列表中最后一个之后的项目。索引也是浮点数,但索引必须是整数return list[int(rand()) # i assume you wanted to use a square bracket here
这将始终选择第一个元素。这是一个介于 0 和 1 之间的随机数,向下舍入 => 0
return list[len(list)} # same thing here
这将始终尝试选择最后一个元素之后的元素,这会导致错误。此外,如果没有 rand() 函数,这甚至不可能是随机的......
推荐阅读
- javascript - 如何从 AJAX 函数中传递数据
- python - 在具有行索引的模式之后插入新字符串并写入新文件
- android - 构建 android 应用程序的问题,LeftShift 错误
- grammar - 如何将带有量词的模棱两可的语法转换为 LL1?
- r - 使用 rvest 从搜索中获取 URL
- forms - 如何将 GTM 事件添加到此表单完成时触发的回调?
- sas - 对于数百个变量,如何根据变量中的最大值重新编码变量的值?
- python - 如何使用 LED、按钮命令和时序进行适当的反应时间模拟
- excel - 如果前三个字符中包含“SEP”或“SIP”,如何查找并突出显示字符串?
- javascript - 如何故意冻结浏览器窗口(如警报、确认和提示)?