fork download
  1. class myList(list):
  2. def short(self):
  3. minlen = min(map(len, self))
  4. return myList( filter(lambda x: len(x) == minlen, self) )
  5.  
  6. def __add__(self, other):
  7. mix = [s.union(o) for s in self for o in other]
  8. return myList( map(set, {*map(tuple, mix)}) )
  9.  
  10.  
  11. def __radd__(self, other):
  12. return self
  13.  
  14. l1 = myList( [{1, 2, 3}, {3}, {4, 5}] )
  15. l2 = myList( [{1, 2, 3}, {6, 7}] )
  16. l3 = myList( [{4}] )
  17.  
  18. mix = sum([l1, l2, l3])
  19. print(mix.short())
  20.  
  21. # or
  22. print((l1 + l2 + l3).short())
  23.  
Success #stdin #stdout 0.03s 27704KB
stdin
Standard input is empty
stdout
[{3, 4, 6, 7}, {1, 2, 3, 4}, {4, 5, 6, 7}]
[{3, 4, 6, 7}, {1, 2, 3, 4}, {4, 5, 6, 7}]