Infix data structures for Python
Project description
infixpy
See blog post, Introducing infixpy: Scala-inspired data structures for Python to learn about using this library.
A functional, object-oriented approach for working with sequences and collections. Also similar to Spark RDDs and Java Streams. Hope you find they simplify your code by providing a plethora of common algorithms for working with sequences and collections.
Stephen's Direct from Scala example
Scala version
val a = ((1 to 50)
.map(_ * 4)
.filter( _ <= 170)
.filter(_.toString.length == 2)
.filter (_ % 20 == 0)
.zipWithIndex
.map{ case(x,n) => s"Result[$n]=$x"}
.mkString(" .. "))
a: String = Result[0]=20 .. Result[1]=40 .. Result[2]=60 .. Result[3]=80
Version using the infixpy library with python
from infixpy import *
a = (Seq(range(1,51))
.map(lambda x: x * 4)
.filter(lambda x: x <= 170)
.filter(lambda x: len(str(x)) == 2)
.filter( lambda x: x % 20 ==0)
.enumerate()
.map(lambda x: 'Result[%d]=%s' %(x[0],x[1]))
.mkstring(' .. '))
print(a)
# Result[0]=20 .. Result[1]=40 .. Result[2]=60 .. Result[3]=80
Original Example
from infixpy import Seq
(Seq(range(10))
.map(lambda x: x+3)
.filter(lambda x: x%2==0)
.groupby(lambda x: x%3)
.keys()
.foreach(print))
Output
1
0
2
Examples
See examples/ directory for additional examples of using infixpy.
Also see example usages in career_village_entities.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
infixpy-0.4.0.tar.gz
(9.0 kB
view details)
File details
Details for the file infixpy-0.4.0.tar.gz
.
File metadata
- Download URL: infixpy-0.4.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89c0488b560fced907c8f1229d67ebb491f076d8658b54ff66aa356a396dfc6c |
|
MD5 | 207d5188d7fd3c33fe82d3954565eed0 |
|
BLAKE2b-256 | a08604796154c81f35f5cab605fe4886ace2f508c22d3479ff713b0a073319e1 |