Skip to main content

A small package introducing a new way to use higher order functions with lists

Project description

Qwery List

QList is a small library introducing a new way to use higher order functions with lists, with lazy evaluation. It also aims to address ugly python list methods such as map, filter and reduce. Whoever invented this:

xs = ['1', '2', '3', '4']
s = reduce(lambda acc, x: acc + x, filter(lambda x: x < 3, map(int, xs)), 0)

must reevaluate their life choices (yes, I am being cocky and most likely dumdum) but listen to me first and look what the world of lazy evaluation has to offer!

xs = QList([1, 2, 3, 4])
s = xs.map(int).filter(lambda x: x < 3).fold(lambda acc, x: acc + x, 0)

As a bonus you get len() method, so no longer will you be forced to wrapp your lists in this type of code len(xs) and simply call xs.len() (I understand it is negligibly slower but look how much nicer it looks!)

Quick tutorial

Let's say we want to read numbers from a file and choose only the even ones. No problem at all!

with open('path/to/file.txt', 'r') as file:
    qlist = QList(file.readlines())
even = qlist.map(int).filter(lambda x: x % 2 == 0).collect()

Why is there this collect at the end? Because all operations on the QList are lazy evaluated, so in order to finally apply all the operations you need to express that. (Eager evaluated module coming soon...)


Side note

I hereby announce that UwU, Qwery Listwu

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

qwlist-0.1.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

qwlist-0.1.1-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file qwlist-0.1.1.tar.gz.

File metadata

  • Download URL: qwlist-0.1.1.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for qwlist-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5911d61e96e7019410a20090e4abcdad0f94bc2ac246b9923ad65cea35f28a02
MD5 b873053ad669df7ad1fc2ccff3f6744f
BLAKE2b-256 8071e03388c37b4a92b1df705391bbca5d6eb63f6ee66898797ee507c84b8f91

See more details on using hashes here.

File details

Details for the file qwlist-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: qwlist-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for qwlist-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 07bb88730f79e31bb9c256d9963c50b588f0178d784d1c7c107f768efbb2df89
MD5 6c471b74ed4c4243c6ae0250e39c1c2d
BLAKE2b-256 709a4f6d2a1d300d86a35c8fae822a469547c23bb3aec0e0b8dba640619099c7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page