如何执行特定的交集操作?

How to perform a specific intersection operation sets?

我在 python 中有一个集合列表 A=[{1, 'CL1'},{1, 'CL2'},{2, 'CL3'},{2, 'CL9'}]。这里的 int 值表示学号,string 值表示 class 类别。我想以 Class X 和 Class Y 共享以下学生的方式执行交集操作。例如,CL1、CL2 有共同的学生 1。类似地,CL3、CL9 有共同的学生 2。这个怎么做?

使用集之间的交集。

A[0].intersection(A[1])
A[2].intersection(A[3])
A=[{1, 'CL1'},{1, 'CL3'},{2, 'CL3'},{2, 'CL9'}]
l = [tuple(row) for row in A]

dic = {}
for row in l:
    if row[0] in dic:
        dic[row[0]].append(row[1])
    else:
        dic[row[0]] = [row[1]]

for key in dic:
    if len(dic[key]) > 1:
        print(key, ':', dic[key])

您可以生成一个字典,其中学生是键,值是包含所有 类 包含学生的列表。然后您可以打印列表长度大于 1 的所有 dic 键和值。