【发布时间】:2019-10-10 19:19:14
【问题描述】:
我有一个问题;可能答案很简单,但我找不到。
我创建了一个函数,它工作正常。
x = 100
y = 100
A = (x ,y)
由于我手动定义了 x 和 y,所以这里没有问题;但问题是,我希望在函数中尝试所有可能的 (x, y) 排列。让我们假设:
B = [(1,1), (1,2), (1,3), ...(99,99)]
那么我该如何进行迭代:
for i in B:
i == A
这可能是一个不好的方法,但我相信你明白我的意图。
从现在开始谢谢。
编辑:
这是函数:
K = []
L = []
M = []
def F():
x = 100
y = 100
A = (x, y)
for i in range(1, x):
if x % i == 0:
K.append((i))
for j in range(1, y):
if y % j == 0:
L.append((j))
P = sum(K[0:])
R = sum(L[0:])
if P == y and R == x:
M.append(A)
print(K, L)
print(M)
F()
【问题讨论】:
-
你的功能在哪里/具体是什么?
-
对不起我的英语水平。我想说的是,我必须手动给 x 和 y 值。我需要它们在指定范围内自动化。
-
您不想要排列(这是 n 对象的可能排序)。您只需要集合
{1, 2, ..., 99}的乘积(或者可能是 2 项组合的集合,从您的B示例中不清楚) -
使用
for combination in itertools.product(range(1, 100), repeat=2): ...。我不确定它是否有意,但您的函数会修改全局变量,因此多次运行它不会像您预期的那样工作。
标签: python permutation