Skip to main content

rindex() function for sequences

Project description

rindex

This package provides rindex() function that returns last index of value in sequence.

Installing

pip install rindex

Examples

from rindex import rindex


numbers = [5, 1, 3, 8, 10, 5, 8, 1, 8, 3]

print(rindex(numbers, 1))  # 7

print(rindex(numbers, 8, 4, 8))  # 6

Goals

  • Support all features of built-in .index()

  • Speed

  • Portability (support for different platforms)

Supported platforms

Currently, the library includes three rindex() implementations:

  • Cython

  • Pure Python (when the Cython one is not available; slower)

  • Pure Python for PyPy

Features

  • Supports any sequences

  • Supports start and stop (both may be negative or out of bounds)

  • Doesn't copy the sequence

Controlling Cython extensions

You can set environment variable ENABLE_RINDEX_EXTENSIONS to 0 or 1 to forcefully disable/enable Cython extensions. This can be useful if you face compilation problems and want to use pure Python version.

Benchmarking

tests/benchmark.py can generate interactive plots with comparisons of different implementations.

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

rindex-1.1.0.tar.gz (3.9 kB view hashes)

Uploaded Source

Built Distributions

rindex-1.1.0-cp312-cp312-win_arm64.whl (63.6 kB view hashes)

Uploaded CPython 3.12 Windows ARM64

rindex-1.1.0-cp312-cp312-win_amd64.whl (66.3 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

rindex-1.1.0-cp312-cp312-win32.whl (64.5 kB view hashes)

Uploaded CPython 3.12 Windows x86

rindex-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl (90.0 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

rindex-1.1.0-cp312-cp312-musllinux_1_1_s390x.whl (91.0 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ s390x

rindex-1.1.0-cp312-cp312-musllinux_1_1_ppc64le.whl (92.4 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ ppc64le

rindex-1.1.0-cp312-cp312-musllinux_1_1_i686.whl (84.2 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

rindex-1.1.0-cp312-cp312-musllinux_1_1_aarch64.whl (89.2 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

rindex-1.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (88.7 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

rindex-1.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (89.7 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

rindex-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (86.7 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

rindex-1.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (87.5 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

rindex-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (82.4 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

rindex-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (20.5 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

rindex-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl (20.6 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

rindex-1.1.0-cp311-cp311-win_arm64.whl (63.3 kB view hashes)

Uploaded CPython 3.11 Windows ARM64

rindex-1.1.0-cp311-cp311-win_amd64.whl (66.1 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

rindex-1.1.0-cp311-cp311-win32.whl (64.2 kB view hashes)

Uploaded CPython 3.11 Windows x86

rindex-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl (83.5 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

rindex-1.1.0-cp311-cp311-musllinux_1_1_s390x.whl (85.5 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ s390x

rindex-1.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl (87.2 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ppc64le

rindex-1.1.0-cp311-cp311-musllinux_1_1_i686.whl (80.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

rindex-1.1.0-cp311-cp311-musllinux_1_1_aarch64.whl (83.3 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

rindex-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (82.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

rindex-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (84.2 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

rindex-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (80.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

rindex-1.1.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (80.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

rindex-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (77.0 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

rindex-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (20.3 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

rindex-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl (20.2 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

rindex-1.1.0-cp310-cp310-win_arm64.whl (63.4 kB view hashes)

Uploaded CPython 3.10 Windows ARM64

rindex-1.1.0-cp310-cp310-win_amd64.whl (66.1 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

rindex-1.1.0-cp310-cp310-win32.whl (64.3 kB view hashes)

Uploaded CPython 3.10 Windows x86

rindex-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl (80.4 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

rindex-1.1.0-cp310-cp310-musllinux_1_1_s390x.whl (82.1 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ s390x

rindex-1.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl (83.7 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ppc64le

rindex-1.1.0-cp310-cp310-musllinux_1_1_i686.whl (77.5 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

rindex-1.1.0-cp310-cp310-musllinux_1_1_aarch64.whl (80.2 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

rindex-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (78.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

rindex-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (80.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

rindex-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (76.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

rindex-1.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (77.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

rindex-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (73.9 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

rindex-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (20.4 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

rindex-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl (20.3 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

rindex-1.1.0-cp39-cp39-win_arm64.whl (63.4 kB view hashes)

Uploaded CPython 3.9 Windows ARM64

rindex-1.1.0-cp39-cp39-win_amd64.whl (66.1 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

rindex-1.1.0-cp39-cp39-win32.whl (64.3 kB view hashes)

Uploaded CPython 3.9 Windows x86

rindex-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl (80.2 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

rindex-1.1.0-cp39-cp39-musllinux_1_1_s390x.whl (81.9 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ s390x

rindex-1.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl (83.6 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ppc64le

rindex-1.1.0-cp39-cp39-musllinux_1_1_i686.whl (77.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

rindex-1.1.0-cp39-cp39-musllinux_1_1_aarch64.whl (80.1 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

rindex-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (78.3 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

rindex-1.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (80.3 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

rindex-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (76.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

rindex-1.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (76.9 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

rindex-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (73.7 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

rindex-1.1.0-cp39-cp39-macosx_11_0_arm64.whl (20.4 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

rindex-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl (20.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

rindex-1.1.0-cp38-cp38-win_amd64.whl (66.2 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

rindex-1.1.0-cp38-cp38-win32.whl (64.4 kB view hashes)

Uploaded CPython 3.8 Windows x86

rindex-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl (81.3 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

rindex-1.1.0-cp38-cp38-musllinux_1_1_s390x.whl (83.0 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ s390x

rindex-1.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl (84.5 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ppc64le

rindex-1.1.0-cp38-cp38-musllinux_1_1_i686.whl (78.5 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

rindex-1.1.0-cp38-cp38-musllinux_1_1_aarch64.whl (80.9 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

rindex-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (79.6 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

rindex-1.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (81.4 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

rindex-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (77.4 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

rindex-1.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (77.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

rindex-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (74.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

rindex-1.1.0-cp38-cp38-macosx_11_0_arm64.whl (20.5 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

rindex-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl (20.4 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

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