distinct
distinct(key=lambda x: x)
Returns an Enumerable
containing elements that are distinct based on a given key selector. This is not an executing function.
Parameters
key : lambda
function used for selecting the key to compare.
Returns
An Enumerable
object that contains only distinct elements based on the given key selector. If an element is not considered unique based on the given key selector, then the first match is returned in the new Enumerable. This is an executing function.
Examples
from py_linq import Enumerable
locations = [
('Scotland', 'Edinburgh', 'Branch1', 20000),
('Scotland', 'Glasgow', 'Branch1', 12500),
('Scotland', 'Glasgow', 'Branch2', 12000),
('Wales', 'Cardiff', 'Branch1', 29700),
('Wales', 'Cardiff', 'Branch2', 30000),
('Wales', 'Bangor', 'Branch1', 12800),
('England', 'London', 'Branch1', 90000),
('England', 'London', 'Branch2', 80000),
('England', 'London', 'Branch3', 70000),
('England', 'Manchester', 'Branch1', 45600),
('England', 'Manchester', 'Branch2', 50000),
('England', 'Liverpool', 'Branch1', 29700),
('England', 'Liverpool', 'Branch2', 25000)
]
# Find distinct based on country. Will grab the first match.
Enumerable(locations).distinct(lambda x: x[0]).to_list()
"""
[
('England', 'London', 'Branch1', 90000),
('Scotland', 'Edinburgh', 'Branch1', 20000),
('Wales', 'Cardiff', 'Branch1', 29700)
]
"""