python – 使用递归创建随机元素列表
发布时间:2020-12-20 11:08:03 所属栏目:Python 来源:网络整理
导读:我被要求定义一个递归函数,它接受两个参数: n valmax 并返回从区间[0,valmax]中随机选取的n个数字的列表 ` import randomdef random_list(n,valmax,lst = []): """ parameters : n of type int; valmax of type int; returns : a list of n numbers picked
我被要求定义一个递归函数,它接受两个参数:
> n 并返回从区间[0,valmax]中随机选取的n个数字的列表 ` import random def random_list(n,valmax,lst = []): """ parameters : n of type int; valmax of type int; returns : a list of n numbers picked randomly from the interval [0,valmax] """ if len(lst) == n: return lst return [random.randint(0,valmax)] + random_list(n,valmax) print(random_list(10,100))` 但是,我得到了一个
如何修复我的代码,使其在区间[0,valmax]中返回一个包含n个随机数的列表? 解决方法
你的逻辑错了.您需要每个函数调用返回n个随机整数,因此您不需要在列表中传递它.
每个函数在[0,valmax]范围内生成一个随机数,并将其连接到整数的随机列表,该整数的长度减去一个(n-1),它是通过递归调用自身得到的. 基本情况是当n == 1时,在这种情况下我们返回一个空列表. import random def random_list(n,valmax): if n == 0: return [] return [random.randint(0,valmax)] + random_list(n-1,valmax) 和测试: random_list(10,20) #[20,9,4,7,3,18,19,9] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |