编写生成指定长度倍数列表的Python 3函数
生成指定长度倍数列表的Python函数实现
嘿,我来帮你搞定这个生成倍数列表的Python函数问题!咱们先把需求理清楚:
我们需要写一个Python 3函数,接收两个数值参数:
value:作为基数的数字length:最终返回列表的元素个数
函数要返回一个列表,里面是value的连续倍数——从1倍开始,直到列表长度恰好达到length为止。
预期示例效果
list_of_multiples(value=7, length=5) ➞ [7, 14, 21, 28, 35] list_of_multiples(value=12, length=10) ➞ [12, 24, 36, 48, 60, 72, 84, 96, 108, 120] list_of_multiples(value=17, length=6) ➞ [17, 34, 51, 68, 85, 102]
分析现有代码的问题
你给出的待完善代码存在几个关键问题:
def multiples (value,length): """ Value is number to be multiply length is maximum number of iteration up to which multiple required. """ for i in range(length): out=i return i
- 循环里只是反复把索引值
i赋值给out,完全没计算value的倍数 - 最后返回的是循环结束后的索引值
i(也就是length-1),和我们需要的倍数列表完全不相关
修复后的实现方案
我给你两种实用的实现方式,按需选择:
方式1:直观的循环收集法
这种方式逻辑清晰,适合新手理解和调试:
def list_of_multiples(value, length): """ Value is number to be multiplied Length is the number of multiples required in the output list. """ multiples_list = [] # 从1开始循环到length(包含),因为我们要的是1倍、2倍...length倍 for i in range(1, length + 1): multiples_list.append(value * i) return multiples_list
方式2:简洁的列表推导式
如果你喜欢更紧凑的代码,用列表推导式一行就能完成:
def list_of_multiples(value, length): """ Value is number to be multiplied Length is the number of multiples required in the output list. """ return [value * i for i in range(1, length + 1)]
测试验证
调用任意一个版本的函数,都能得到示例中的预期结果。比如:
print(list_of_multiples(7, 5)) # 输出: [7, 14, 21, 28, 35]
内容的提问来源于stack exchange,提问作者Faisal
相关产品推荐
相关产品推荐

