This is surprisingly complex topic in Python.
Arrays are represented by class list
(see reference and do not mix them with generators).
Check out usage examples:
# empty array
arr = []
# init with values (can contain mixed types)
arr = [1, "eels"]
# get item by index (can be negative to access end of array)
arr = [1, 2, 3, 4, 5, 6]
arr[0] # 1
arr[-1] # 6
# get length
length = len(arr)
# supports append and insert
arr.append(8)
arr.insert(6, 7)
Under the hood Python's list
is a wrapper for a real array which contains references to items. Also, underlying array is created with some extra space.
Consequences of this are:
arr[6653]
is same to arr[0]
)append
operation is 'for free' while some extra spaceinsert
operation is expensiveCheck this awesome table of operations complexity.
Also, please see this picture, where I've tried to show most important differences between array, array of references and linked list: