在数学运算之后,同时在列表推导中添加两个数据项

时间:2014-08-11 16:23:48

标签: python list-comprehension

我正在尝试创建一个输出数字的除数/因子的函数。

def divisors(number):
    limit = int(math.sqrt(number) + 1)
    divisor_list = [x for x in range(1, limit + 1) if number % x == 0]
    return divisor_list

如您所见,列表推导允许我只输出两个除数中的一个。 x而不是x,number / x。

有没有办法可以同时在列表中添加两个值而不嵌套列表

1 个答案:

答案 0 :(得分:1)

您要么列出清单:

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

或者,如果您不想要列表列表,则必须使用以下内容:

divisor_list = []
for x in range(1, limit + 1):
    if number % x == 0:
        divisor_list+=([x, number / x])