A LINQ-like library for Python
Project description
Linq Tool
Linq is a Python package that provides LINQ-like functionality for performing common operations on iterables. Inspired by LINQ from C#, this package allows you to easily manipulate collections in a functional style.
Features
- Select: Project each element of a sequence into a new form.
- Where: Filter elements based on a predicate.
- GroupBy: Group elements by a key selector function.
- OrderBy: Sort elements based on a key.
- Distinct: Remove duplicate elements.
- And many more!
Installation
You can install Linq via pip:
pip install linq-package
Usage Examples
Select
from linq_tool import Linq
linq = Linq([1, 2, 3])
result = linq.select(lambda x: x * 2).to_list()
print(result) # Output: [2, 4, 6]
Where
linq = Linq([1, 2, 3, 4])
result = linq.where(lambda x: x % 2 == 0).to_list()
print(result) # Output: [2, 4]
GroupBy
linq = Linq(['apple', 'banana', 'apricot', 'blueberry'])
result = linq.group_by(lambda x: x[0]).to_list()
print(result) # Output: [('a', ['apple', 'apricot']), ('b', ['banana', 'blueberry'])]
OrderBy
linq = Linq([{'name': 'apple', 'price': 5}, {'name': 'banana', 'price': 3}])
result = linq.order_by(lambda x: x['price']).to_list()
print(result) # Output: [{'name': 'banana', 'price': 3}, {'name': 'apple', 'price': 5}]
Distinct
linq = Linq([1, 2, 2, 3, 4, 4])
result = linq.distinct().to_list()
print(result) # Output: [1, 2, 3, 4]
Take
linq = Linq([1, 2, 2, 3, 4, 4])
result = linq.distinct().to_list()
print(result) # Output: [1, 2, 3, 4]
Skip
linq = Linq([1, 2, 3, 4, 5])
result = linq.skip(2).to_list()
print(result) # Output: [3, 4, 5]
FirstOrDefault
linq = Linq([1, 2, 3])
result = linq.first_or_default()
print(result) # Output: 1
empty_linq = Linq([])
result = empty_linq.first_or_default(42)
print(result) # Output: 42
LastOrDefault
linq = Linq([1, 2, 3])
result = linq.last_or_default()
print(result) # Output: 3
empty_linq = Linq([])
result = empty_linq.last_or_default(42)
print(result) # Output: 42
Any
linq = Linq([1, 2, 3])
result = linq.any(lambda x: x > 2)
print(result) # Output: True
result = linq.any(lambda x: x > 3)
print(result) # Output: False
All
linq = Linq([1, 2, 3])
result = linq.all(lambda x: x > 0)
print(result) # Output: True
result = linq.all(lambda x: x > 1)
print(result) # Output: False
Count
linq = Linq([1, 2, 3, 4])
result = linq.count()
print(result) # Output: 4
TakeWhile
linq = Linq([1, 2, 3, 4, 5])
result = linq.take_while(lambda x: x < 4).to_list()
print(result) # Output: [1, 2, 3]
SkipWhile
linq = Linq([1, 2, 3, 4, 5])
result = linq.skip_while(lambda x: x < 4).to_list()
print(result) # Output: [4, 5]
SkipWhile
linq = Linq([1, 2, 3, 4, 5])
result = linq.skip_while(lambda x: x < 4).to_list()
print(result) # Output: [4, 5]
ZipWith
linq = Linq([1, 2, 3])
result = linq.zip_with(['a', 'b', 'c']).to_list()
print(result) # Output: [(1, 'a'), (2, 'b'), (3, 'c')]
ZipLongest
linq = Linq([1, 2, 3])
result = linq.zip_longest_with(['a', 'b'], fillvalue='x').to_list()
print(result) # Output: [(1, 'a'), (2, 'b'), (3, 'x')]
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
linq_tool-0.1.3.tar.gz
(5.6 kB
view hashes)
Built Distribution
Close
Hashes for linq_tool-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb8cd45756662c7ee33341a87d4e4264e8671819a4c62489e4a936b0b7c49a04 |
|
MD5 | cf36b1c15b690feaea78bafc687e87fd |
|
BLAKE2b-256 | 95af3008d70556b462bb9792cbfede112960496ecdb53c5d156b384170631ccc |