gpt4 book ai didi

python - 列表理解而不是循环扩展

转载 作者:行者123 更新时间:2023-12-05 00:42:30 26 4
gpt4 key购买 nike

我可以将这段代码写成一行吗?我尝试在列表理解中使用链。

def divisors(n):
result = []
for div in range(1, int(sqrt(n)) + 1):
if n % div == 0:
result.extend([div, n / div])
return list(set(result))

最佳答案

一套理解似乎是合适的。另请注意,我使用的是 // 而不是 /,因为 float 与此问题无关。

from math import sqrt

def divisors(n):
return {x for div in range(1, int(sqrt(n)) + 1)
if not (n % div)
for x in [div, n // div]}

divisors(15)
# {1, 3, 5, 15}

如果你真的想要一个列表,把集合变成一个列表很容易。

list(divisors(15))
# [1, 3, 5, 15]

关于python - 列表理解而不是循环扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73421579/

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