If you really want to do this, you can create a class that wraps a list, and implement __getitem__ and __setitem__ to be one based. For example:

def __getitem__(self, index):
  return self.list[index-1]

def __setitem__(self, index, value):
  self.list[index-1] = value

However, to get the complete range of flexibility of Python lists, you would have to implement support for slicing, deleting, etc. If you just want a simple view of the list, one item at a time, this should do it for you.'

See Python Documentation for Data Model for more information on creating custom classes that act like sequences or mappings.

Answer from Max on Stack Overflow
🌐
GeeksforGeeks
geeksforgeeks.org › python › python-array-indexing
Python Array Indexing - GeeksforGeeks
July 1, 2026 - Python arrays use zero-based indexing, ... from 0. Negative indexing allows you to access elements from the end of an array. It is useful when you need the last few elements and do not want to calculate the array length. ... Negative indexes start from the end, where -1 represents ...
🌐
NumPy
numpy.org › doc › stable › user › basics.indexing.html
Indexing on ndarrays — NumPy v2.5 Manual
Single element indexing works exactly like that for other standard Python sequences. It is 0-based, and accepts negative indices for indexing from the end of the array. ... It is not necessary to separate each dimension’s index into its own set of square brackets. >>> x = x.reshape((2, 5)) # now x is 2-dimensional >>> x[1, 3] 8 >>> x[1, -1] 9
🌐
W3Schools
w3schools.com › python › numpy › numpy_array_indexing.asp
NumPy Array Indexing
The indexes in NumPy arrays start with 0, meaning that the first element has index 0, and the second has index 1 etc.
🌐
Python Guides
pythonguides.com › python-array-index-1
How To Use Python Array Index -1?
March 19, 2025 - In this case, user_inputs[-1] retrieves the most recent input. Check out Python program to print the smallest element in an array · Now, let me show you some common issues that you might receive and how to fix them. If you try to access an index that doesn’t exist, Python will raise an IndexError.
🌐
AskPython
askpython.com › python › array › array-indexing-in-python
Array Indexing in Python - Beginner's Reference - AskPython
February 22, 2021 - In order to access specific elements from an array, we use the method of array indexing. The first element starts with index 0 and followed by the second element which has index 1 and so on.
🌐
Spark By {Examples}
sparkbyexamples.com › home › python › python array index
Python Array Index - Spark By {Examples}
May 31, 2024 - Python Array index is commonly used to refer to the index of an element within an array. You can use array indexing to manipulate and access array
🌐
Quora
quora.com › Why-does-Python-start-at-index-1-when-iterating-an-array-backwards
Why does Python start at index 1 when iterating an array backwards? - Quora
Answer (1 of 4): It doesn’t, it starts at -1. But before we get to that, we should note that whether we’re talking about a list, string, tuple, or other iterable, Python indices are actually offsets. Let’s just use a list (as opposed to an array, which is not a native Python datatype).
Find elsewhere
🌐
O'Reilly
oreilly.com › library › view › numpy-essentials › 9781784393670 › ch02s02.html
Array indexing and slicing - NumPy Essentials [Book]
April 28, 2016 - Simple integer indexing works by typing indices within a pair of square brackets and placing this next to the array variable. This is a widely used Python construct. Any object that has a __getitem__ method will respond to such indexing.
Authors: Jaidev DeshpandeLeo (Liang-Huan) ChinTanmay DuttaShane Holloway
Published: 2016
Pages: 156
🌐
All About AI-ML
indhumathychelliah.com › 2020 › 10 › 07 › how-to-index-data-in-python-numpy-arrays
How to Index Data in Python Numpy Arrays – All About AI-ML
January 2, 2022 - In Python, all indices are zero_based. Index 0 represents the first element in the array. ... Negative indexing starts from the end of the array. -1 represents the last element.
🌐
CodeSignal
codesignal.com › learn › courses › numpy-basics › lessons › array-indexing-and-slicing-in-numpy
Array Indexing and Slicing in NumPy - Python
Note that [-1] gives us the last element, the same as with plain Python's lists! Array slicing lets us access a subset, or slice, of an array.
🌐
NumPy
numpy.org › devdocs › user › basics.indexing.html
Indexing on ndarrays — NumPy v2.6.dev0 Manual
Single element indexing works exactly like that for other standard Python sequences. It is 0-based, and accepts negative indices for indexing from the end of the array. ... It is not necessary to separate each dimension’s index into its own set of square brackets. >>> x = x.reshape((2, 5)) # now x is 2-dimensional >>> x[1, 3] 8 >>> x[1, -1] 9
🌐
Quansight-labs
quansight-labs.github.io › ndindex › indexing-guide › index.html
Guide to NumPy Indexing - ndindex documentation
These indices will not work on the built-in Python sequence types like list and str; they are only defined for NumPy arrays. This section is itself split into six subsections. First is a basic introduction to what a NumPy array is. Following this are pages for each of the remaining index types, the basic indices: tuples, ellipses, and newaxis; and the advanced indices: integer arrays and boolean arrays (i.e., masks).
🌐
Data-apis
data-apis.org › array-api › 2022.12 › API_specification › indexing.html
Indexing — Python array API standard 2022.12 documentation
Valid negative indices must reside on the closed interval [-n, -1]. ... This specification does not require bounds checking. The behavior for out-of-bounds integer indices is left unspecified. A negative index j is related to a zero-based nonnegative index i via i = n+j. Colons : must be used ...
🌐
GeeksforGeeks
geeksforgeeks.org › python › numpy-indexing
Numpy Array Indexing - GeeksforGeeks
December 17, 2025 - A 1D NumPy array is a sequence ... like arr[0] for the first element. Negative indices count from the end so arr[-1] gives the last element. Python ·...
🌐
Python
docs.python.org › 3.5 › library › array.html
8.7. array — Efficient arrays of numeric values — Python 3.5.10 documentation
Removes the item with the index i from the array and returns it. The optional argument defaults to -1, so that by default the last item is removed and returned.
🌐
Data-apis
data-apis.org › array-api › draft › API_specification › generated › array_api.array.__index__.html
__index__ — Python array API standard DRAFT documentation
Converts a zero-dimensional integer array to a Python int object. ... This method is called to implement operator.index().
🌐
Problem Solving with Python
problemsolvingwithpython.com › 05-NumPy-and-Arrays › 05.05-Array-Indexing
Array Indexing - Problem Solving with Python
The array above contains three values: 2, 4 and 6. Each of these values has a different index. Remember counting in Python starts at 0 and ends at n-1.
🌐
PyTutorial
pytutorial.com › python-array-indexing-guide-for-beginners
PyTutorial | Python Array Indexing Guide for Beginners
March 25, 2026 - Indexing is how you get a single element from an array. You use square brackets and a number. This number is the index. In Python, indexing starts at 0. The first element is at position 0. The second is at position 1, and so on.
🌐
O'Reilly
oreilly.com › library › view › python-data-science › 9781789537864 › 64d89aef-5255-49d9-b0d2-4b858e39c93d.xhtml
Slicing and indexing with NumPy arrays - Python Data Science Essentials - Third Edition [Book]
September 28, 2018 - Indexing allows us to take a view of a ndarray by pointing out either what slice of columns and rows to visualize, or an index: ... Our array is a 10 x 10 two-dimensional array. We can initially start by slicing it into a single dimension. The notation for a single dimension is the same as that in Python lists:
Authors: Alberto BoschettiLuca MassaronPietro MarinelliMatteo Malosetti
Published: 2018
Pages: 472