【发布时间】:2015-01-27 18:44:23
【问题描述】:
我目前有这个代码来分解大数:
def f1(n):
return [[i, n//i] for i in range(1 , int(n**0.5) + 1) if n % i == 0]
这是迄今为止我见过的最快的版本(如果有更快的方法我也很想知道),但我想要一个没有嵌套的所有因素的单一列表(所以我想要比如:[factor 1, factor 2, factor 3,..., factor n-3, factor n-2, factor n-1, factor n] 等等。顺序并不重要。
因此,我想知道是否有一种方法可以通过列表理解来分配多个作业。
即
def f1(n):
return [i, n//i for i in range(1 , int(n**0.5) + 1) if n % i == 0]
这样我就没有嵌套列表。它会更快,速度至关重要。
我查看了文档,但找不到多个分配的单个示例。
【问题讨论】:
-
那么,如果您只想要
n // i因素,为什么还要在其中添加i,? -
-
I和n/I都是n的因数
标签: python list python-2.7 nested-lists