gpt4 book ai didi

python - 用于计算 python 中两个值之间某个数的倍数的一行代码

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:25 28 4
gpt4 key购买 nike

我有以下代码来执行标题所说的操作:

def multiples(small, large, multiple):
multiples = []
for k in range(small, large+1):
if k % multiple == 0:
multiples.append(k)
return multiples

它输出的内容:

>>> multiples(39, 51, 12)
[48]
>>> multiples(39, 51, 11)
[44]
>>> multiples(39, 51, 10)
[40, 50]
>>> multiples(39, 51, 9)
[45]
>>> multiples(39, 51, 8)
[40, 48]
>>> multiples(39, 51, 7)
[42, 49]
>>> multiples(39, 51, 6)
[42, 48]
>>> multiples(39, 51, 5)
[40, 45, 50]
>>> multiples(39, 51, 4)
[40, 44, 48]
>>> multiples(39, 51, 3)
[39, 42, 45, 48, 51]
>>> multiples(39, 51, 2)
[40, 42, 44, 46, 48, 50]

但是,要编写的代码很多,我一直在寻找一种 pythonic 的单行代码来完成它的工作。外面有什么东西吗?

最佳答案

只需将您的代码更改为列表理解,就像这样

return [k for k in range(small, large+1) if k % multiple == 0]

如果你只是想遍历结果,那么你可以简单地返回一个生成器表达式,就像这样

return (k for k in xrange(small, large+1) if k % multiple == 0)

如果你真的想把所有的倍数作为一个列表,那么你可以把它转换成这样的列表

list(multiples(39, 51, 12))

关于python - 用于计算 python 中两个值之间某个数的倍数的一行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100009/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com