gpt4 book ai didi

python - 如何将函数应用于列表中的每个元素,然后列出输出?

转载 作者:行者123 更新时间:2023-12-04 01:23:30 25 4
gpt4 key购买 nike

我试图通过对一个数进行因式分解并将这些因数添加到 list1 中来获得质因数,然后使用与之前相同的方法并添加到 list2,所以任何质因数的列表长度都是 2(如果数字是平方数,它会打印出平方根两次,但因为它不是质数,所以没关系)。

我不知道如何让它将我的 factors() 函数应用到 list1 中的每个元素,并列出我所做的所有分解因子。

import math
list1 = []
list2 = []
def factors(num1):

for x in range(1, int(math.sqrt(num1) + 1)):
if num1 % x == 0:
list2.append(int(x))
list2.append(int(num1/x))
list2.sort()

print("enter a number:")
number = int(input())

for m in range(1, int(math.sqrt(number) + 1)):
if number % m == 0:
list1.append(int(m))
list1.append(int(number/m))
list1.sort()

for y in list1:
factors(y)
print(list2)

期望的输出如果 20 是输入

((1,1),(1,2),(1,2,2,4)(1,5),(1,2,5,10),(1,2,4,5,10,20))

最佳答案

您可以像这样使用列表理解来做到这一点。我稍微修改了 factors 函数以返回列表。

import math

def factors(num):
fact = []
for x in range(1, int(math.sqrt(num)+1)):
if num % x == 0:
fact.append(x)
fact.append(int(num/x))
fact.sort()
return fact

print("enter a number:")
number = int(input())

list1 = factors(number)
list2 = [factors(f) for f in list1]

20 的结果:

[[1, 1], [1, 2], [1, 2, 2, 4], [1, 5], [1, 2, 5, 10], [1, 2, 4, 5, 10, 20]]

关于python - 如何将函数应用于列表中的每个元素,然后列出输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62240377/

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