潇潇雨雨
标准库itertools模块有一个名为的函数combinations() ,可以执行您的请求(从可迭代对象生成所有可能的项目组合的列表)。但是,如果您正在寻找排列,即 if(A,B)应该被视为与 不同(B,A),那么您将需要使用permutations().例如,运行以下代码:from itertools import permutations, combinationsnames = ['Jeff', 'Alice', 'Trogdor', 'Kublai Khan']print("Combinations: ", [n for n in combinations(names, 2)])print("Permutations: ", [n for n in permutations(names, 2)])...将打印以下输出:Combinations: [('Jeff', 'Alice'), ('Jeff', 'Trogdor'), ('Jeff', 'Kublai Khan'), ('Alice', 'Trogdor'), ('Alice', 'Kublai Khan'), ('Trogdor', 'Kublai Khan')]Permutations: [('Jeff', 'Alice'), ('Jeff', 'Trogdor'), ('Jeff', 'Kublai Khan'), ('Alice', 'Jeff'), ('Alice', 'Trogdor'), ('Alice', 'Kublai Khan'), ('Trogdor', 'Jeff'), ('Trogdor', 'Alice'), ('Trogdor', 'Kublai Khan'), ('Kublai Khan', 'Jeff'), ('Kublai Khan', 'Alice'), ('Kublai Khan', 'Trogdor')]附带说明一下,碰巧还有一个使用 itertools 函数islice()和cycle(). 但术语“循环”并不能准确地描述您正在尝试做什么。您的问题的更好标题是“在 python 中生成组合”,或者类似的东西。