DEV Community

≀Paulo Portela
≀Paulo Portela

Posted on

Working with Lists in Python

In this post, we'll explore the basics of lists in Python. Lists are a fundamental data structure in Python, used to store collections of items in a single variable. Let's get started.

First, let's create an empty list. This can be done by assigning an empty pair of square brackets to a variable:

planets = []
Enter fullscreen mode Exit fullscreen mode

Now that we have an empty list, let's add some elements to it. We can do this using the append() method, which adds an element to the end of the list:

planets.append("Mercury")
planets.append("Venus")
planets.append("Earth")
print(planets)

# Output: ['Mercury', 'Venus', 'Earth']
Enter fullscreen mode Exit fullscreen mode

Our list now contains three elements: "Mercury", "Venus", and "Earth". We can access these elements using their index, which is a zero-based integer representing their position in the list. For example, to get the first element, we can use the following code:

first_planet = planets[0]
print(first_planet)

# Output: Mercury
Enter fullscreen mode Exit fullscreen mode

We can also access a range of elements using slicing. For example, to get the second and third elements, we can use the following code:

second_and_third_planets = planets[1:3]
print(second_and_third_planets)

# Output: ['Venus', 'Earth']
Enter fullscreen mode Exit fullscreen mode

We can also access the elements in reverse order using negative indexing. For example, to get the last element, we can use the following code:

last_planet = planets[-1]
print(last_planet)

# Output: Earth
Enter fullscreen mode Exit fullscreen mode

We can also reverse the entire list using slicing with a step of -1:

reversed_planets = planets[::-1]
print(reversed_planets)

# Output: ['Earth', 'Venus', 'Mercury']
Enter fullscreen mode Exit fullscreen mode

We can also access elements at even indexes using slicing. For example, to get the first and third elements, we can use the following code:

first_and_third_planets = planets[::2]
print(first_and_third_planets)

# Output: ['Mercury', 'Earth']
Enter fullscreen mode Exit fullscreen mode

To get the number of elements in the list, we can use the len() function:

num_planets = len(planets)
print(num_planets)

# Output: 3
Enter fullscreen mode Exit fullscreen mode

We can also insert an element at a specific index using the insert() method. For example, to insert "Mars" as the fourth element, we can use the following code:

planets.insert(3, "Mars")
print(planets)

# Output: ['Mercury', 'Venus', 'Earth', 'Mars']
Enter fullscreen mode Exit fullscreen mode

We can also copy a list using the copy() method:

planets_copy = planets.copy()
print(planets_copy)

# Output: ['Mercury', 'Venus', 'Earth', 'Mars']
Enter fullscreen mode Exit fullscreen mode

We can extend a list by adding elements from another list using the extend() method:

more_planets = ["Jupiter", "Saturn", "Uranus", "Neptune"]
planets.extend(more_planets)
print(planets_copy)

# Output: ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
Enter fullscreen mode Exit fullscreen mode

We can remove an element by its value using the remove() method. For example, to remove "Earth" from the list, we can use the following code:

planets.remove("Earth")
print(planets)

# Output: ['Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
Enter fullscreen mode Exit fullscreen mode

We can also remove an element by its index using the pop() method. For example, to remove the second element, we can use the following code:

planets.pop(1)
print(planets)

# Output: ['Mercury', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
Enter fullscreen mode Exit fullscreen mode

We can remove the first element using the pop() method with an index of 0:

planets.pop(0)
print(planets)

# Output: ['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
Enter fullscreen mode Exit fullscreen mode

We can remove the last element using the pop() method with no arguments:

planets.pop()
print(planets)

# Output: ['Mars', 'Jupiter', 'Saturn', 'Uranus']
Enter fullscreen mode Exit fullscreen mode

We can check if an element is in the list using the in keyword. For example, to check if "Earth" is in the list, we can use the following code:

earth_in_list = "Earth" in planets
print(earth_in_list)

# Output: False
Enter fullscreen mode Exit fullscreen mode

We can sort a list in ascending or descending order using the sort() method. For example, to sort a list of planets in alphabetical order, we can use the following code:

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
planets.sort()
print(planets)

# Output: ['Earth', 'Jupiter', 'Mars', 'Mercury', 'Neptune', 'Saturn', 'Uranus', 'Venus']
Enter fullscreen mode Exit fullscreen mode

To sort the list in descending order, we can pass the reverse=True argument to the sort() method:

planets.sort(reverse=True)
print(planets)

# Output: ['Venus', 'Uranus', 'Saturn', 'Neptune', 'Mercury', 'Mars', 'Jupiter', 'Earth']
Enter fullscreen mode Exit fullscreen mode

We can also sort a list of numbers in ascending or descending order using the same method. For example, to sort a list of numbers in ascending order, we can use the following code:

numbers = [3, 1, 4, 2, 5]
numbers.sort()
print(numbers)

# Output: [1, 2, 3, 4, 5]
Enter fullscreen mode Exit fullscreen mode

To sort the list in descending order, we can pass the reverse=True argument to the sort() method:

numbers.sort(reverse=True)
print(numbers)

# Output: [5, 4, 3, 2, 1]
Enter fullscreen mode Exit fullscreen mode

We can also use the sorted() function to sort a list, which returns a new sorted list and leaves the original list unchanged. For example, to sort a list of planets in alphabetical order and create a new sorted list, we can use the following code:

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
sorted_planets = sorted(planets)
print(sorted_planets)

# Output: ['Earth', 'Jupiter', 'Mars', 'Mercury', 'Neptune', 'Saturn', 'Uranus', 'Venus']
Enter fullscreen mode Exit fullscreen mode

To sort the list in descending order, we can pass the reverse=True argument to the sorted() function:

sorted_planets = sorted(planets, reverse=True)
print(sorted_planets)

# Output: ['Venus', 'Uranus', 'Saturn', 'Neptune', 'Mercury', 'Mars', 'Jupiter', 'Earth']
Enter fullscreen mode Exit fullscreen mode

We can also use the key argument to specify a custom function to determine the sort order. For example, to sort a list of strings by their length, we can use the following code:

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
planets.sort(key=len)
print(planets)

# Output: ['Mars', 'Venus', 'Earth', 'Saturn', 'Uranus', 'Mercury', 'Jupiter', 'Neptune']
Enter fullscreen mode Exit fullscreen mode

In this example, we pass the len function as the key argument, which tells the sort() method to sort the list based on the length of each element.

We can delete all the elements in the list using the clear() method:

planets.clear()
print(planets)

# Output: []
Enter fullscreen mode Exit fullscreen mode

We can delete the list variable itself using the del keyword:

del planets
print(planets)

# Output: NameError: name 'planets' is not defined
Enter fullscreen mode Exit fullscreen mode

We can create a nested list by including lists as elements within another list. For example, to create a list of lists representing the planets and their moons, we can use the following code:

planets_and_moons = [['Mercury'], ['Venus'], ['Earth', 'Moon'], ['Mars', 'Phobos', 'Deimos']]
print(planets_and_moons)

# Output: [['Mercury'], ['Venus'], ['Earth', 'Moon'], ['Mars', 'Phobos', 'Deimos']]
Enter fullscreen mode Exit fullscreen mode

We can sum the elements of a list of numbers using the sum() function:

numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)

# Output: 15
Enter fullscreen mode Exit fullscreen mode

We can also convert a list to a set using the set() function. This will remove any duplicate elements from the list and return a set containing the unique elements:

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"]
unique_planets = set(planets)
print(unique_planets)

# Output: {'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto'}
Enter fullscreen mode Exit fullscreen mode

We can also get the maximum and minimum values of a list of numbers using the max() and min() functions, respectively:

numbers = [1, 2, 3, 4, 5]

max_value = max(numbers)
min_value = min(numbers)
print(max_value)  # Output: 5
print(min_value)  # Output: 1
Enter fullscreen mode Exit fullscreen mode

That concludes our beginner's guide to lists in Python. We've covered various operations, from creating and accessing elements to modifying and deleting lists. We hope this guide has helped get you started with lists in Python. Happy coding!

Top comments (0)