Subscribe to my email list now at http://jauyeung.net/subscribe/
Follow me on Twitter at https://twitter.com/AuMayeung
Many more articles at https://medium.com/@hohanga
Even more articles at http://thewebdev.info/
Python is a convenient language that’s often used for scripting, data science, and web development.
In this article, we’ll look at the many things that we can do with Python lists.
Sorting the Values in a List with the sort() Method
We can use the list sort
method to sort a list. It works with any object, including strings and numbers.
For example, we can use it as follows:
fruits = ['apple', 'orange', 'orange', 'grape', 'pear']
fruits.sort()
The sorting is done in place. So it sorts the list that it’s called on.
Therefore, we get:
['apple', 'grape', 'orange', 'orange', 'pear']
as the new value of fruits
.
With numbers, we can write:
nums = [5,3,4,6,7]
nums.sort()
Then the new value of nums
is:
[3, 4, 5, 6, 7]
We can’t sort lists that have mixed data types.
For example, the following list:
mixed = ['apple', 'orange',3,2,1]
mixed.sort()
We’ll get:
TypeError: '<' not supported between instances of 'int' and 'str'
since sort
can’t compare the entries.
Reversing the Values in a List with the reverse() Method
The reverse
method reverses a list in place. It can also be done with string and number arrays.
For instance, we can write:
fruits = ['apple', 'orange', 'orange', 'grape', 'pear']
fruits.reverse()
Then the new value of fruits
is:
['pear', 'grape', 'orange', 'orange', 'apple']
Likewise, we can do the same with a number list:
nums = [5,3,4,6,7]
nums.reverse()
Then we get:
[7, 6, 4, 3, 5]
as the new value of nums
.
Emptying a List with clear()
We can call clear
on a list to clear all entries from a list.
For instance, we can call it as follows:
nums = [5,3,4,6,7]
nums.clear()
Then we get that the new value of nums
is an empty list.
Remove the Last Element of a List with pop()
We can call pop
on a list to remove the last item off a list.
For instance, we can write the following:
nums = [5,3,4,6,7]
nums.pop()
to remove 7 from nums
.
Counting the Number of Times an Item Appears on a List with count()
The count
method takes an element that we want to search for in a list.
For instance, we can use it as follows:
fruits = ['apple', 'orange', 'orange', 'grape', 'pear']
orange_count = fruits.count('orange')
orange_count
should be 2 since 'orange'
appeared twice on the list.
Shallow Copying a List with copy()
The copy
method creates a shallow copy of the array it’s called on and returns it. This is the same as a[:]
.
A shallow copy means only the top-level items are copied. Nested items are still referencing the original items.
For instance, given that we have the following code:
fruits = ['apple', 'orange', 'orange', 'grape', 'pear']
fruits_copy = fruits.copy()
fruits_copy.append('banana')
We should see that the value of fruits
is:
['apple', 'orange', 'orange', 'grape', 'pear']
and the value of fruits_copy
is:
['apple', 'orange', 'orange', 'grape', 'pear', 'banana']
This is because we made a copy of the fruits
list by calling copy
. Therefore, fruits_copy
is referencing a new list with the same entries as fruits
in the second line.
List Comprehensions
We can use the list comprehension syntax to create a list by mapping list items by calling a function to do the mapping.
For instance, we can write:
cubes = [x**3 for x in range(10)]
to create an array with each entry a cube of the entry returned from range(10)
.
Therefore, we should get:
[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
as the value of cubes
since 0**3
is 0, 1**3
is 1, 2**3
is 8, and so on.
We can also use it to returns a new list with some items filtered out as follows:
nums = [-3,5,6]
positive_nums = [x for x in nums if x > 0]
The code above takes all the numbers that are bigger than 0 on the list and returns it.
Therefore, we should get:
[5, 6]
as the value of positive_nums
.
Conclusion
Python lists have lots of methods to do various operations.
We can sort lists with sort
, remove the last item from a list with pop
, count the number of items we’re looking for with count
, and empty a list with clear
.
Python also has the list comprehension syntax to generate a list from another list.
Top comments (12)
Great post, I had no idea there was a
clear()
method. You're missing out on one of my favorite features though! The*
operator. I commonly use it along side list comprehensions.For example take a pandas
DataFrame
and get all of the columns that include"price"
in their name.Thanks for reading.
You mean make a filtered list with lost comprehension?
Or you mean using * to repeat items?
Lol, good catch. 😳 I think I took a break between the comment and finding a good example. Here is a real example of nearly the same thing if the DataFrame was a pyspark DataFrame. pyspark.select takes in column names as
*args
df.select('us_price', 'eu_price')
They can be selected programatically with a list comprehension and *unpacking.
I see. The list comprehension is used as a predicate?
Not sure what you mean by predicate, the list comprehension is a filter.
Here is a generally relatable example using the print statement
That makes sense. I haven't seen this documented in many places. That's probably why I missed this.
Thanks John for this nice summary on the list. I think you forget a banana in the print of fruit_copy after fruit_copy.append('banana') and I like the bananas ;)
Thanks so much for reading and catching that mistake. I corrected it now.
what's the difference between l.count() and len(l)?
There's no difference.
I guess there is a huge difference between them
check the example below
Yes. You're right