fork download
  1. def group(items):
  2. iterator = iter(items)
  3. group = [next(iterator)]
  4. result =[group]
  5. for item in iterator:
  6. (a, b), (c, d) = item, group[-1]
  7. if a in (c, d) or b in (c, d):
  8. group.append(item)
  9. else:
  10. group = [item]
  11. result.append(group)
  12.  
  13. return result
  14.  
  15. print(group([(1,2),(2,3),(3,4),(7,8),(8,9),(2,1),(2,3),(1,4)]))
Success #stdin #stdout 0.02s 8736KB
stdin
Standard input is empty
stdout
[[(1, 2), (2, 3), (3, 4)], [(7, 8), (8, 9)], [(2, 1), (2, 3)], [(1, 4)]]