如何使用集合中的元素迭代所有可能的唯一对?

stw*_*ykd -1 python set python-itertools python-3.x

我通常会写:

for i in range(len(collection)):
    for j in range(i + 1, len(collection)):
        print(collection[i], collection[j])
Run Code Online (Sandbox Code Playgroud)

这取决于所订购的元素。使用无序集合时如何做到这一点?

a_g*_*est 5

您可以使用itertools.combinations

import itertools as it

result = it.combinations(collection, 2)
Run Code Online (Sandbox Code Playgroud)