fork download
  1. #!/usr/bin/env python3
  2. import collections
  3. import itertools
  4. import sys
  5.  
  6. rules = collections.defaultdict(set)
  7. for line in sys.stdin:
  8. # Do actual CSV parsing here.
  9. name, rule = line.strip().split(",")
  10. rules[name].add(rule)
  11.  
  12. for i, j in itertools.combinations(rules, 2):
  13. intersection = rules[i] & rules[j]
  14. if intersection:
  15. print("Groups {} and {} have intersection {}".format(
  16. i,
  17. j,
  18. intersection
  19. ))
  20.  
Success #stdin #stdout 0.1s 10096KB
stdin
A,rule1
B,rule1
C,rule2
A,rule2
B,rule2
D,rule1
B,rule3
stdout
Groups A and C have intersection {'rule2'}
Groups A and B have intersection {'rule2', 'rule1'}
Groups A and D have intersection {'rule1'}
Groups C and B have intersection {'rule2'}
Groups B and D have intersection {'rule1'}