Skip to main content

Listrology

name is suggested by our good friend chatgpt Listrology extends the functionality of lists

Installation

pip install listrology

Usage

Listrology contains a subclass of list which provides a number of methods that are useful

from listrology import List
assert List([1, 2, 3]) == [1, 2, 3]

Square bracket prefix is also supported

from listrology import List
assert List[4, 5, 6] == [4, 5, 6]

There is also a shorthand constructor

from listrology import L, List
assert L[7, 8, 9] == List[7, 8, 9] == [7, 8, 9]

Some methods include

mylist = L[0, 1, 2, 3, 4, 5, 6]

mylist.foreach(print) # prints all elements one by one
mylist.reject(lambda x: x == 2) # [0, 1, 3, 4, 5, 6]

# copy elements mylist[5:7] and use it to overwrite elements starting at mylist[1]
mylist.overwrite(target=1, start=5, end=7) # [0, 5, 6, 3, 4, 5, 6]

mylist.first(lambda x: x % 2 == 1) # 1 (first one that is odd)

mylist.fill("yo", 2, 4) # [0, 1, "yo", "yo", 4, 5, 6]

# each rotation the first element is put to last (inspired by Ruby)
mylist.rotate(1) # [1, 2, 3, 4, 5, 6, 0]
mylist.rotate(2) # [2, 3, 4, 5, 6, 0, 1]

listrology's lists supports method chaining (each method produces a new instance)

volcano_heights = L[412, 399, 276, 591, 482, 451, 521, 529, 521, 426, 511, 426, 426]
# find all volcano heights that are 400m-525m tall and remove duplicates and sort then
result = volcano_heights.filter(lambda x: 400 <= x <= 525).unique().sort()
# [412, 426, 451, 482, 511, 521]

Metadata

Release files for listrology 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for listrology 1.0.1
File Size Uploaded
listrology-1.0.1.tar.gz 4.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for listrology 1.0.1
File Interpreter ABI Platform
listrology-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 8.3 kB

Release files / listrology-1.0.1.tar.gz

Download URL listrology-1.0.1.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a964e429a90c1c7d9d5c9ec5d2fd3f54febcaf627b64999beb9c908b7a290591
BLAKE2b-256 checksum
How to use checksums
f2b2dcbf87a1eb7459bbe4f5d4a3b15e9d4831089ad0ca329cbccc5056226e66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.2

Release files / listrology-1.0.1-py3-none-any.whl

Download URL listrology-1.0.1-py3-none-any.whl
Size 4.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9051c331c19f9dcf5348c673edd61cd512f7c165c4c07c2a6d09bd38da6b5f1e
BLAKE2b-256 checksum
How to use checksums
b06155618f395cb2d1e528021aed3d04784e1ebf388fbb1bcb371d6b3b396f9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.2

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page