执行以下操作的干净方法是什么:

def foo(aSet) :
    for a in aSet:
        for remaining in aSet - {a} :
            doSomething(a,remaining)

我在想一定有某种方式可以将它写成一个 for 循环?

最佳答案

aSet = {1,2,3}
[[i,j] for i in aSet for j in aSet if j != i]
#=> [[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]]

在你的情况下,你需要一个发电机
(doSomething(i, j) for i in aSet for j in aSet if j != i)

关于迭代集合/剩余集的pythonic方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36388394/

10-10 18:03