导致两个序列为非双射的子列表

时间:2017-03-14 15:14:06

标签: python

这里已经讨论了这个问题,我附上了post

的代码
def is_bijection(seq1, seq2):
  distinct1 = set(seq1)
  distinct2 = set(seq2)
  distinctMappings = set(zip(seq1, seq2))
  return len(distinct1) == len(distinctMappings) and len(distinct2) == len(distinctMappings)

以上代码段检查两个序列是否是双射的。我想更多地扩展它。我想拉出一个包含导致它不是双射的对的子列表。让我们举个例子:

seq1 = ['India','Bangladesh','Nordic','Bangladesh']
seq2 = [12,10,10,11]

如果我们将上述序列发送到附加函数,它将返回false。我还希望获得如下列表/主题:

'Bangladesh' - 10
'Bangladesh' - 11

显示了不是双射的原因。有什么暗示吗?

编辑:

序列(X,Y)如果遵循以下规则则是双射的:

  1. X的每个元素必须与Y的至少一个元素
  2. 配对
  3. X的任何元素都不能与Y的多个元素配对,
  4. Y的每个元素必须与X的至少一个元素和
  5. 配对
  6. Y的任何元素都不能与X的多个元素配对。
  7. 任何不符合上述规则的2个序列都是非双射的。我想从2个序列得到(X,Y)对的子列表,使其成为非双射的。

0 个答案:

没有答案