gpt4 book ai didi

Python 列表理解 : Is it possible to specify the inclusion of two elements at a time?

转载 作者:行者123 更新时间:2023-11-28 19:40:22 25 4
gpt4 key购买 nike

到目前为止,在 Python 中,我只见过一次指定包含一个元素的列表理解。比如都是下面的形式

[f(x) for x in <iterable>]

有没有办法一次指定多个元素?例如,

[f(x), g(x) for x in <iterable>]

我问这个问题是因为我想创建一个列表理解来计算某个数字 x 的所有除数,但我想尽可能高效地执行此操作。现在我正在使用以下内容,

[y for y in range(1,x+1) if x%y == 0]

但是我想做这样的事情,

[y, x/y for y in range(1, sqrt(x)+1) if x%y == 0]

因为这样会更有效率。顺便说一句,我没有这样做的实际理由。有人告诉我,这只是一个具有挑战性的问题,目标是尽可能以最小、最有效的列表理解来完成。

提前致谢。

编辑:好的,看来我必须使用元组了。我试图避免这种情况,因为我必须创建另一个函数来展平列表,这会使我的解决方案更长。

编辑 2:以防万一有人偶然发现这个问题,我在原始问题中想做的事情的答案是:

[y for x in <iterable> for y in f(x), g(x)]

它在列表理解中使用嵌套的 for 循环来完成工作。

最佳答案

你可以把它压平到位

[y if i else x/y for y in range(1, sqrt(x)+1) for i in 0,1 if x%y == 0]

关于Python 列表理解 : Is it possible to specify the inclusion of two elements at a time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11534113/

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