回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>例如</p>
<p><code>nested = [a,b,c]</code></p>
<p>上面列表的笛卡尔积本身将生成以下对</p>
<p><code>[(a,a),(a,b),(a,c),(b,a),(b,c),(b,b),(c,a),(c,b),(c,c)]</code></p>
<p>我想找到一种方法来生成以下</p>
<p><code>[(a,b),(a,c),(b,a),(b,c),(c,a),(c,b)]</code></p>
<p>我试了以下方法</p>
<p><code>[(x,y) for x in nested for y in nested if x != y]</code></p>
<p>对于以下测试用例,上述代码失败</p>
<pre><code>nested_testcase1 = [[1,2],[2,3],[1,2]]
</code></pre>
<p>现在,上面的代码行将给出以下结果</p>
<p><code>[([1,2],[2,3]),([2,3],[1,2]),([1,2],[2,3]),([2,3],[1,2])]</code></p>
<p>但我想说的是</p>
<p><code>[([1,2],[2,3]),([2,3],[1,2]),([1,2],[2,3]),([2,3],[1,2]),([1,2],[1,2]),([1,2],[1,2])]</code></p>
<p>最后两个组合是通过配对第一个和最后一个元素来实现的。你知道吗</p>
<p>有人有什么想法吗?你知道吗</p>