DEV Community

Cover image for Python data structures (lists, tuples, dictionaries, sets)
Thea
Thea

Posted on

Python data structures (lists, tuples, dictionaries, sets)

In this blog post, we are going to study a short overview of some data structures specific to Python3.

Python has four basic inbuilt data structures: Lists, Dictionary, Tuple, and Set. We will see how to use each of them and how they make life easier for us.

Python list

Lists in Python are collections of elements. They can be as long as you want, and the individual elements can have the same type or not. The items in a list are separated by commas and enclosed in square brackets:

some_list = [1, 2, 3, 4, 5]
some_list = ['a','b','c','d']
some_list = [7, 'hi', None, False, True, ['another', 'list']]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

To access an element in a list, we use bracket notation and pass in the index. Lists in Python use a zero-based index:

some_list = ['a', 1, False]
print(some_list[2]) #False
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

In addition, there are a number of inbuilt methods you can use. Here are some more ones:

append() - adds a value to the end of a list:

some_list = [11,25,3]
some_list.append(10)
print(some_list) #[11,25,3,10]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

clear() - removes all the values in a list:

some_list = [1,2,3]
some_list.clear()
print(some_list) #[]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

copy() - makes a shallow copy of a list:

some_list = [2,3,4]
another_list = some_list.copy()
print(another_list) #[2, 3, 4]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

count() - counts how many times an item appears in a list:

some_list = [1,2,3,4,5,5,5,5]
some_list.count(1) #1
print(some_list.count(5)) #4
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

extend() - adds all elements of a list to some other list:

some_list = [1,2,3]
some_list.extend([5,6,7])
print(some_list) #[1,2,3,5,6,7] 
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

index() - returns the index of an element. If the element is not found, index returns a ValueError:

some_list = [4,8,6,4]
print(some_list.index(8)) #1
print(some_list.index(4)) #0 - it only finds the index of the first matching element
print(some_list.index(12)) #ValueError
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

insert() - inserts an element to the list at the given index:

some_list = [4,6,8]
some_list.insert(2,'awesome') #inserts 'awesome' at index 2
print(some_list) #[4,6,'awesome',8]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

pop() - removes the last element from a list and returns the element removed:

some_list = [3,4]
print(some_list.pop()) #4
print(some_list.pop()) #IndexError
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

pop() throws an error if you call it on an empty list.

remove() - removes the first occurrence of a value:

some_list = [1,2,3,1]
some_list.remove(1)
print(some_list) #[2,3,1]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

reverse() - reverses the order of all elements of the list:

some_list = [1,2,3,4]
some_list.reverse()
print(some_list) #[4,3,2,1]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

sort() - sorts all elements of a list in the ascending order:

some_list = [1,4,3,2]
some_list.sort()
print(some_list) #[1,2,3,4]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

Python Tuple

Similar to a list, a tuple in Python is also a collection of items. The differences are that the tuples are immutable, which means we can not change the elements once assigned, and use parentheses, whereas lists use square brackets.
Because of immutability, operations on tuples are faster than on lists.

some_tuple = ('a', 'b', 'c', 'd')
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

To write a tuple containing a single value you have to include a comma, even though there is only one value:

single_tuple = ('a',)
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

Following are some common methods used on tuples:

count() - returns the number of times a value appears in a tuple:

some_tuple = (1,2,3,3,3)
print(some_tuple.count(1)) #1
print(some_tuple.count(3)) #3
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

index() - returns the index of the given element in the tuple:

some_tuple = (1,2,3,3,3)
print(some_tuple.index(1)) #0
print(some_tuple.index(5)) #ValueError
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

Python Dictionary

Dictionaries in Python are key value pairs. They are defined using curly braces, separating key value pairs with a comma, and placing a colon between the key and the value:

weekdays = {
    1: 'Monday',
    2: 'Tuesday',
    3: 'Wednesday',
    4: 'Thursday',
    5: 'Friday',
    6: 'Saturday',
    7: 'Sunday'
}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

-keys in a dictionary must be unique (no two same keys)
-keys are immutable
-keys and values can be of any data type
-the keys() function returns a list of keys in a dictionary
-the values() function returns a list of values in a dictionary

Following are the common methods on dictionaries:

clear() - clears all the keys and values in a dictionary:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}
car.clear()
print(car) #{}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

copy() - makes a copy of a dictionary:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.copy()
print(x) #{'brand': 'Maserati', 'model': 'Quattroporte'}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

fromkeys() - creates key value pairs from comma separated values:

keys = ('a', 'e', 'i', 'o', 'u')
value = 'vowel'

vowels = dict.fromkeys(keys, value) 
#{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

get() - retrieves a key in an object and returns None instead of a KeyError if the key does not exist:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.get('model')
print(x) #Quattroporte
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

items() - returns a list of tuples with each key-value pair:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.items()
print(x) #[('brand', 'Maserati'), ('model', 'Quattroporte')]
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

keys() - returns a dict_keys object containing all of the keys in an object:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.keys()
print(x) #(['brand', 'model'])
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

setdefault() - returns the value of the specified key:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.setdefault('model', 'Ghibli')
print(x) #Quattroporte 
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

update() - update keys and values in a dictionary with another set of key value:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.update({'color': 'white'})
print(x) #{'brand': 'Maserati', 'model': 'Quattroporte', 'color': 'white'}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

values() - returns a list of all the values in the dictionary:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}
x = car.values()
print(list(x)) #['Maserati', 'Quattroporte']
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

Python Set

A set is an unordered collection of objects in Python. In addition to being iterable and mutable, sets do not have duplicate values. They can be useful if you need to keep track of a collection of elements, but don't care about ordering.

Here are some set methods:

add() - adds an element to a set. If the element is already in the set, the set doesn’t change:

s = {1,2,3}
s.add(4)
print(s) #{1, 2, 3, 4}
s.add(4)
print(s) #{1,2,3,4}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

clear() - removes all the items of the set:

s = {1,2,3}
s.clear()
print(s) #set()
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

copy() - creates a copy of the set:

s = {1,2,3}
another_s = s.copy()
print(another_s) #{1, 2, 3}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

difference() - returns a new set with all the elements that are in the first set but not in the set passed to difference:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.difference(set2) 
print(x) #{1}
y = set2.difference(set1) 
print(y) #{4}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

intersection() - returns a new set containing all the elements that are in both sets:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.intersection(set2) 
print(x) #{2,3}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

union - returns a union of two sets:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.union(set2) 
print(x) #{1,2,3,4}
πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini πŸ”₯ Jadwal & Hasil: highflyer/python data structures lists tuples dictionaries sets epc - Pertandingan Hari Ini

A good understanding of data structures is very important for developers. I hope this article will help you to understand data structures for your Python projects.

Top comments (0)