Python List
A list contains items separated by commas and enclosed within square brackets ([]). To some extent, lists are similar to arrays in C. One difference between them is that all the items belonging to a list can be of different data type.
The values stored in a list can be accessed using the slice operator ([ ] and [:]) with indexes starting at 0 in the beginning of the list and working their way to end -1.
The plus (+) sign is the list concatenation operator, and the asterisk (*) is the repetition operator.
Example:
x= [ 'abcd', 11, 2.23, 'Ram', 70.2 ]
thislist = [123, 'Ram']
print(x) # Prints complete list
print(x[0]) # Prints first element of the list
print(x[1:3]) # Prints elements starting from 2nd till 3rd
print(x[2:]) # Prints elements starting from 3rd element
print(thislist * 2) # Prints list two times
print(x+ thislist) # Prints concatenated lists
Output:
['abcd', 11, 2.23, 'Ram', 70.2]
abcd
[11, 2.23]
[2.23, 'Ram', 70.2]
[123, 'Ram', 123, 'Ram']
['abcd', 11, 2.23, 'Ram', 70.2, 123, 'Ram']
Ordered
It means that the items have a defined order, and that order will not change.
Changeable
We can change, add, and remove items in a list after it has been created.
Allow Duplicates
lists can have items with the same value.
List Methods
Method | Description |
---|---|
append() | Adds an element at the end of the list |
clear() | Removes all the elements from the list |
copy() | Returns a copy of the list |
count() | Returns the number of elements with the specified value |
extend() | Add the elements of a list (or any iterable), to the end of the current list |
index() | Returns the index of the first element with the specified value |
insert() | Adds an element at the specified position |
pop() | Removes the element at the specified position |
remove() | Removes the item with the specified value |
reverse() | Reverses the order of the list |
sort() | Sorts the list |
List Length
Use len() function to get how many items in list.
thislist = ["apple", "banana", "cherry"]
print(len(thislist))
#Output:3
List type
Use type() function to get the type of any python object.
mylist = ["apple", "banana", "cherry"]
print(type(mylist))
#Output:<class 'list'>
The list() Constructor
Using list() constructor to create a new list.
thislist = list(("apple", "banana", "cherry"))
List Operations:
1. Access List Items
List items are indexed and you can access them by referring to the index number:
The first item has index 0.
fruits= ["apple", "banana", "cherry"]
print(fruits[1])
Negative Indexing
Negative indexing means start from the end.
-1 refers to the last item, -2 refers to the second last item etc.
Print the last item of the list:
fruits = ["apple", "banana", "cherry"]
print(fruits[-1])
Range of Indexes
A range of indexes by specifying where to start and where to end the range.
When specifying a range, the return value will be a new list with the specified items.
Example
Return the third, fourth, and fifth item:
fruits = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(fruits[2:5])
The search will start at index 2 (included) and end at index 5 (not included).
Example
By leaving out the start value, the range will start at the first item:
fruits = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(fruits[:4])
Example
By leaving out the end value, the range will go on to the end of the list:
fruits = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(fruits[2:])
Check if Item Exists
fruits = ["apple", "banana", "cherry"]
print("apple" in fruits)
#Output: True
2. Change List Item
Example: Change Item Value
To change the value of a specific item, refer to the index number:
fruits = ["apple", "banana", "cherry"]
fruits[1] = "mango"
Example: Change a Range of Item Values
To change the value of items within a specific range, define a list with the new values, and refer to the range of index numbers where you want to insert the new values:
fruits = ["apple", "banana", "cherry", "orange", "kiwi", "mango"]
fruits[1:3] = ["blackcurrant", "watermelon"]
print(fruits)
#Output : ['apple', 'blackcurrant', 'watermelon', 'orange', 'kiwi', 'mango']
Note: The length of the list will change when the number of items inserted does not match the number of items replaced.
insert() Function
To insert a new list item, without replacing any of the existing values, we can use the insert()
method.
The insert()
method inserts an item at the specified index:
thislist = ["apple", "banana", "cherry"] thislist.insert(2, "watermelon") print(thislist) #Output: ['apple', 'banana', 'watermelon', 'cherry']
3. Add List Items
Append Items
To add an item to the end of the list, use the append() method:
thislist = ["apple", "banana", "cherry"] thislist.append("orange") print(thislist)
Extend List
To append elements from another list to the current list, use the extend() method.
thislist = ["apple", "banana", "cherry"] tropical = ["mango", "pineapple", "papaya"] thislist.extend(tropical) print(thislist) #Output: ['apple', 'banana', 'cherry', 'mango', 'pineapple', 'papaya']
The elements will be added to the end of the list.
Add Any Iterable
The extend() method does not have to append lists, you can add any iterable object (tuples, sets, dictionaries etc.).
Add elements of a tuple to a list:
thislist = ["apple", "banana", "cherry"] thistuple = ("kiwi", "orange") thislist.extend(thistuple) print(thislist) #Output : ['apple', 'banana', 'cherry', 'kiwi', 'orange']
4. Remove List Items
Remove Specified Item
The remove() method removes the specified item.
thislist = ["apple", "banana", "cherry"] thislist.remove("banana") print(thislist) #Output : ['apple', 'cherry']
Remove Specified Index
The pop() method removes the specified index.
Remove the second item:
thislist = ["apple", "banana", "cherry"] thislist.pop(1) print(thislist) #Output : ['apple', 'cherry']
If you do not specify the index, the pop() method removes the last item.
thislist = ["apple", "banana", "cherry"] thislist.pop() print(thislist) #Output: ['apple', 'banana']
The del keyword also removes the specified index:
thislist = ["apple", "banana", "cherry"] del thislist[0] print(thislist) #Output : ['banana', 'cherry']
The del keyword can also delete the list completely.
thislist = ["apple", "banana", "cherry"] del thislist print(thislist) #this will cause an error because you have succsesfully deleted "thislist".
5. Loop Lists
Loop Through a List
thislist = ["apple", "banana", "cherry"] for x in thislist: print(x)
Loop Through the Index Numbers
thislist = ["apple", "banana", "cherry"] for i in range(len(thislist)): print(thislist[i])
Using a While Loop
thislist = ["apple", "banana", "cherry"] i = 0 while i < len(thislist): print(thislist[i]) i = i + 1
Looping Using List Comprehension
thislist = ["apple", "banana", "cherry"] [print(x) for x in thislist]
6. Sort Lists
Sort List Alphanumerically
List objects have a sort()
method that will sort the list alphanumerically, ascending, by default:
Sort the list alphabetically:
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"] thislist.sort() print(thislist)
Sort the list numerically:
thislist = [100, 50, 65, 82, 23] thislist.sort() print(thislist)
Sort Descending:
# alphabet sorting in descending order thislist = ["orange", "mango", "kiwi", "pineapple", "banana"] thislist.sort(reverse = True) print(thislist) # number sorting in descending order thislist = [100, 50, 65, 82, 23] thislist.sort(reverse = True) print(thislist)
Case Insensitive Sort
By default the sort()
method is case sensitive, resulting in all capital letters being sorted before lower case letters:
Perform a case-insensitive sort of the list:
thislist = ["banana", "Orange", "Kiwi", "cherry"] thislist.sort(key = str.lower) print(thislist)
7. Reverse Order
The reverse()
method reverses the current sorting order of the elements.
thislist = ["banana", "Orange", "Kiwi", "cherry"] thislist.reverse() print(thislist)
8. Copy Lists
You cannot copy a list simply by typing list2 = list1
, because: list2
will only be a reference to list1
, and changes made in list1
will automatically also be made in list2
.
There are ways to make a copy, one way is to use the built-in List method copy()
.
thislist = ["apple", "banana", "cherry"] mylist = thislist.copy() print(mylist)
Another way to make a copy is to use the built-in method list()
.
thislist = ["apple", "banana", "cherry"] mylist = list(thislist) print(mylist)
9. Join Lists
There are several ways to join, or concatenate, two or more lists in Python.
One of the easiest ways are by using the +
operator.
list1 = ["a", "b", "c"] list2 = [1, 2, 3] list3 = list1 + list2 print(list3)
Another way to join two lists is by appending all the items from list2 into list1, one by one:
list1 = ["a", "b" , "c"] list2 = [1, 2, 3] for x in list2: list1.append(x) print(list1)
Or you can use the extend()
method, which purpose is to add elements from one list to another list:
list1 = ["a", "b" , "c"] list2 = [1, 2, 3] list1.extend(list2) print(list1)