Advertisement
andrejpodzimek

Remove all items with lowest value.

Sep 5th, 2021
1,203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.48 KB | None | 0 0
  1. def remove_lowest_values(weird_list):
  2.   lowest = {}  # name -> (value, {index, ...})
  3.   for i, (name, value) in enumerate(weird_list):
  4.     prev = lowest.setdefault(name, (value, {i}))
  5.     if value < prev[0]:
  6.       lowest[name] = (value, {i})
  7.     elif value == prev[0]:
  8.       prev[1].add(i)
  9.   unwanted = set.union(*(vi[1] for vi in lowest.values()))
  10.   return [weird_list[i]
  11.           for i in range(len(weird_list))
  12.           if i not in unwanted]
  13.  
  14. print(remove_lowest_values(items))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement