Python 在一个数学运算之后,在一个列表中同时添加两个数据项
我试图创建一个输出数字的除数/因子的函数Python 在一个数学运算之后,在一个列表中同时添加两个数据项,python,list-comprehension,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,数字/x 是否有一种方法可以在列表中同时添加两个值而不嵌套列表?您可以创建列表列表:
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,数字/x
是否有一种方法可以在列表中同时添加两个值而不嵌套列表?您可以创建列表列表:
[[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])
如果Python2.x,您可以对…中的x执行
[(x,number/x)]
如果是Python 2.x,请注意整数除法(考虑number/float(x)
)@jornsharpe或从uuuu future\uuuuuuu导入除法
为什么要使用列表理解?直接的for
循环有什么问题?@MarkDickinson没有什么问题。我最终使用了一个循环。我以为我错过了什么。