A list datatype represents a numbered, ordered collection of items.
11.1 Characteristics
A list has square brackets ([]) on the extremities, and comma separated items inside.
A list may contain zero or more items. A list can contain items of any datatype, but as a best practice, all items in a list should share a datatype and structure.
We access items in a list by their numeric position, called the index. In Python (and most other languages), indices are zero-based, meaning the index of the first item is zero. We use square brackets ([]) to denote which item we would like to access:
We can use a negative one to dynamically reference the last item in the list (regardless of how many there are):
print(symbols[-1])
NFLX
11.2.1 List Slicing
It is possible to access a subset of the items in sequence, by denoting the numeric position of the first item (inclusive) and last item (exclusive):
symbols = ["MSFT", "AAPL", "GOOGL", "AMZN", "NFLX"]print(symbols[0:1]) # FROM 0 (INCLUSIVE) to 1 (EXCLUSIVE)print(symbols[0:2]) # FROM 0 (INCLUSIVE) to 2 (EXCLUSIVE)print(symbols[0:3]) # FROM 0 (INCLUSIVE) to 3 (EXCLUSIVE)
print(symbols[2:4]) # FROM 2 (INCLUSIVE) to 4 (EXCLUSIVE)
['GOOGL', 'AMZN']
NoteExplaining List Slicing
List slicing can be confusing at first, but here’s a simple way to think about it:
Left side of the colon:
This is the starting index.
The slice begins at this index, and includes the item at this position.
If you leave it blank, it starts from the beginning (index 0).
Right side of the colon:
This is the ending index.
The slice goes up to, but does not include, this index.
If you leave it blank, it goes up to the end of the list.
By default if we omit one of the sides, it will include all members to the start or end of the list:
symbols = ["MSFT", "AAPL", "GOOGL", "AMZN", "NFLX"]print(symbols[ :2]) # FROM BEGINNING TO 2 (EXCLUSIVE)print(symbols[2: ]) # FROM 2 (INCLUSIVE) TO THE END
['MSFT', 'AAPL']
['GOOGL', 'AMZN', 'NFLX']
Note: list slicing provides a subset of the items in sequence, however to access a subset of the items based on some condition, we will use a filter operation instead.