Much like `filter` work, I'd like to be able to remove the duplicate items from a sequence but according to the return value of a callback.

`set` doesn't allow that.

```
my_list = [{'foo': 330}, {'foo': 560}, {'foo': 320}]

# What I would like:
remove_duplicate(my_list, lambda val: int(val['foo']/100))

# Would return
[{'foo': 330}, {'foo': 560}]
# or
[{'foo': 560}, {'foo': 320}]

```

I do not actually care about the order or which get to be kept, I consider all these data as duplicate.

Ideally, I'm looking for a built-in way to do this.