我在python中有一个集合列表,名为A=[{1, 'CL1'},{1, 'CL2'},{2, 'CL3'},{2, 'CL9'}]。这里,int值表示学生编号,字符串值表示班级类别。我想以这样一种方式执行交集运算,即X类和Y类共享以下学生。例如,CL1和CL2有共同的学生1。同样,CL3和CL9也有学生2的共同点。该怎么做呢?
发布于 2020-03-27 23:56:57
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])您可以生成一个字典,其中student是键,value是一个列表,其中包含所有包含该学生的类。然后,您可以打印列表长度大于1的所有dic键和值。
发布于 2020-03-27 23:40:43
使用集合之间的交集。
A[0].intersection(A[1])
A[2].intersection(A[3])https://stackoverflow.com/questions/60889236
复制相似问题