在python中获得2组之间可能的元素配对

时间:2017-06-26 17:25:08

标签: python combinations

例如,我有10个男孩和10个女孩。

在每个配对场景中,我想将每个男孩与一个女孩配对。配对是独家的。一旦男孩与女孩配对,男孩就不能与另一个女孩配对,反之亦然。

如何才能最佳地找到python中所有可能的配对方案?另外,我如何用正确的数学术语描述这个问题。

谢谢!

编辑:在配对上添加约束

1 个答案:

答案 0 :(得分:4)

这样的事情

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div class="footer">
  <div class="container">
    <div class="row">
      <div class="col-sm-4">
        <h4>Instagram</h4>
        <a href="#" target="_blank"><img src="img/instagram.png"/></a>
      </div>
      <div class="col-sm-4">
        <h4>Facebook</h4>
        <a href="#" target="_blank"><img src="img/facebook.png"/></a>
      </div>
      <div class="col-sm-4">
        <h4>LinkedIn</h4>
        <a href="#" target="_blank"><img src="img/linkedin.png"/></a>
      </div>
    </div>
  </div>
</div>

给出了可能的配对

from itertools import permutations

boys = ['greg', 'john', 'andy']
girls = ['lilly', 'samantha', 'tammy']
pairings = [list(zip(boys, girls_perm)) for girls_perm in permutations(girls)]