需要列表中最后 x 个元素的随机值

sur*_*rya -2 python list python-3.x

我试图从特定范围内的列表中获取随机数,而不使用任何模块。

输入列表看起来像 li = [12,44,55,64,34,54,56,43,56,9,87,89]

我需要一个函数,我应该传递这个列表并作为输入,并从给定列表中的x最后一个元素中获取一个随机元素。x

例如: val = getRandom(li, 4),结果val应该是以下值之一:56,9,87,89

我尝试使用random模块,它工作正常。

def getRandomNumber(li, x):
    return random.choice(li[-x:])
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我在没有模块的情况下实现相同的目标吗random

Aks*_*kar 6

使用random模块

import random

li = [12,44,55,64,34,54,56,43,56,9,87,89]

def getRandom(ls, x):
    return random.choice(ls[-x:])

print(getRandom(li, 4))
Run Code Online (Sandbox Code Playgroud)

  • 你忘记了 `ls[-x:]` (3认同)

kay*_*ya3 5

要在不复制列表切片的情况下执行此操作,您可以使用生成从到包含random.randint(-x, -1)范围内的索引(请参阅文档)。当您使用负数作为索引时,它将计算为距列表末尾的偏移量。-x-1