Dive into Daunting Lists and Dictionaries in Python

Search for a command to run...

No comments yet. Be the first to comment.
Python 101 series will teach you all basics you need to get into Python world. Python series have all basic covered so you can at least do a google search.
What if you want to do some specific tasks when the string is "Python" and some other tasks when the string is "Java". To achieve this conditioning we can use conditional statements in python or any other language. When we want to do some task for n ...
Unlock the Power of Python Comprehensions to Enhance Your Code's Clarity and Performance

Hello, friends! Today, I want to share why you should avoid sending mere "Hi!" or "Hey!" messages when trying to communicate with your colleagues or even friends. Having worked for three years, one immediate lesson I learned is that nobody has time t...

Python. You might be thinking I know what a list is, I have used it numerous times. But there is a difference between using a list and using a list efficiently. So, I will show you what I have learned as a Software Engineer. We can create a list basi...

As developers, we face many cases when we import data from one source and want to upload this data into another source. This was the same situation I was facing. I exported data from Notion and wanted to import it into the MongoDB Atlas. To insert da...

We have explored how to get current date, month, year and day of the week in the previous blog. In this blog post we will explore more of a datetime and its corresponding methods with some tutorial. Get the Current Week Number using Python There are ...

As I promised, here I am! I have come again with an in-depth blog post for Python lists and dictionaries. In this blog, we will take a look at the in-built methods for lists and dictionaries provided by python. There are not many complex methods that exist in python. All the in-built methods are very intuitive from name only. So, let's get started!

Python provides several in-built methods with the list. Some of them, you will use on a day-to-day basis but some you might never use. So, let's focus on important ones.
insert(), append() & extend()
remove(), pop(), del & clear()
count(), index() & len()
sort() & reverse()
copy()
Syntax: list.insert(position, element) Insert() method adds an element at the specified position in the list. The element can be any of the in-built data types.
1). Insert string into the list
list1 = ["Python", "Programming"]
str1 = "Learn"
list2 = ["From", "Sahil Fruitwala"]
list1.insert(0, str1)
list1.insert(3, list2)
print(list1)
#OUTPUT: ['Learn', 'Python', 'Programming', ['From', 'Sahil Fruitwala']]
2). Insert number and boolean into the list
list1 = ["Python", "Programming"]
number1 = 13
boolean1 = False
list1.insert(0, number1)
list1.insert(10, boolean1)
print(list1)
# OUTPUT: ['Python', 'Programming', 13, False]
Here, if we add any number more than the ending index data will be added at the end of the list. So, when we did list1.insert(10, boolean1), as the list doesn't have ten elements or the 10th index, it will add boolean data at the end of the list.
Syntax: list.append(element) The append method adds an element at the end of the list. We can use any data type with the append method as well.
list1 = ["Python", "Programming"]
str1 = "Learn"
list2 = ["From", "Sahil Fruitwala"]
list1.append(str1)
list1.append(list2)
print(list1)
# OUTPUT: ['Python', 'Programming', 'Learn', ['From', 'Sahil Fruitwala']]
Syntax: list.extend(iterable_element) Extend method adds every element of iterable/sequence (string, list, tuple, set) data type at the end of the list.
list1 = ["Python", "Programming"]
str1 = "Learn"
list2 = ["From", "Sahil Fruitwala"]
tuple1 = ("in", "Python 101")
set1 = {"The", "Blog Series"}
list1.extend(str1)
list1.extend(list2)
list1.extend(tuple1)
list1.extend(set1)
print(list1)
# OUTPUT: ['Python', 'Programming', 'L', 'e', 'a', 'r', 'n', 'From', 'Sahil Fruitwala', 'in', 'Python 101', 'The', 'Blog Series']
Syntax: list.remove(element) The remove method removes the first instance of a specific element from the list.
list1 = [ 1, 2, 1, 1, 4, 5 ]
list1.remove(1)
print(list1)
# OUTPUT: [2, 1, 1, 4, 5]
If we try to remove the element that does not exist in the list, then python will throw the error.
list1 = [ 1, 2, 1, 1, 4, 5 ]
list1.remove(6)
print(list1)
'''
OUTPUT:
Traceback (most recent call last):
File "C:\\Users\\Sahil\\Desktop\\1.py", line 2, in <module>
list1.remove(6)
ValueError: list.remove(x): x not in list
'''
Syntax: list.pop() or list.pop(index) The pop method by default removes the last element of the list and returns it. We can also pass the specific index to the pop method.
list1 = ["Python", "C++", "Java", "PHP", "Rust"]
pop_element = list1.pop()
print(pop_element)
print(list1)
# OUTPUT: Rust
# OUTPUT: ['Python', 'C++', 'Java', 'PHP']
pop_element = list1.pop(1)
print(pop_element)
print(list1)
# OUTPUT: C++
# OUTPUT: ['Python', 'Java', 'PHP']
Syntax: del list[index] The keyword del removes elements from the specific index in the list. If we use the del keyword without any index, it will remove the complete variable from the computer's memory.
list1 = ["Python", "C++", "Java", "PHP", "Rust"]
del list1[2]
print(list1)
# OUTPUT: ['Python', 'C++', 'PHP', 'Rust']
list1 = ["Python", "C++", "Java", "PHP", "Rust"]
del list1
Syntax: list.clear() The Clear method removes all elements from the list.
list1 = ["Python", "C++", "Java", "PHP", "Rust"]
list1.clear()
print(list1)
# OUTPUT: []
Syntax: list.count(element) The count method returns the number of occurrences of a specific element in a list.
fruits = ['apple', 'banana', 'cherry', 'mango', 'grape', 'cherry', 'cherry']
num_of_cherry = fruits.count("cherry")
print(num_of_cherry)
# OUTPUT: 3
Syntax: list.index(element) The index method returns the index of a specific element in the list.
fruits = ['apple', 'banana', 'cherry', 'mango', 'grape', 'cherry', 'cherry']
index_of_cherry = fruits.index("cherry")
print(index_of_cherry)
# OUTPUT: 2
Note: If an element does not exist ion list index() will throw the error.
Syntax: len(list) Len method returns the length of any sequence datatype and dictionary.
list1 = ['apple', 'banana', 'cherry', 'mango', 'grape', 'cherry', 'cherry']
str1 = "Python Programming"
dict1 = {'lang':"Python", 'Year':2021}
print(len(list1))
print(len(str1))
print(len(dict1))
# OUTPUT: 7
# OUTPUT: 18
# OUTPUT: 2
Syntax: list.sort() The sort method sorts all the elements of the list by default into ascending order. We can do the sort operation in descending order by providing the reverse=True argument in the sort function.
nums = [2, 5, 1, 7, 2, 3, 4, 5, 6]
nums.sort()
print(nums)
# OUTPUT: [1, 2, 2, 3, 4, 5, 5, 6, 7]
nums.sort(reverse=True)
print(nums)
# OUTPUT: [7, 6, 5, 5, 4, 3, 2, 2, 1]
The sort method is an in-place method. It means, it does not return any value and does all the operations internally. That is the reason why we have not assigned nums.sort() to any other value. If we do that we will get the following result.
nums = [2, 5, 1, 7, 2, 3, 4, 5, 6]
new_nums = nums.sort()
print(new_nums)
# OUTPUT: None
Syntax: list.reverse() As the name suggests, the reverse method reverses the whole list. The reverse method is also an in-place method.
nums = [2, 5, 1, 7, 2, 3, 4, 5, 6]
nums.reverse()
print(nums)
# OUTPUT: [6, 5, 4, 3, 2, 7, 1, 5, 2]
Syntax: list.copy()
There will occur many cases during development when we want to copy the list. The copy method helps us to do that.
num1 = [2, 5, 1, 7, 2, 3, 4, 5, 6]
num2 = num1
num2.reverse()
print(num1)
print(num2)
# OUTPUT:
[6, 5, 4, 3, 2, 7, 1, 5, 2]
[6, 5, 4, 3, 2, 7, 1, 5, 2]
In the general case, num2 will have copied data of num1. But, in the case of the list, it just copies the memory address of num1 to num2. So, whatever changes we make in num2 they all will reflect in num1, and vice versa. So, to copy lists properly we have to use the copy method.
num1 = [2, 5, 1, 7, 2, 3, 4, 5, 6]
num2 = num1.copy()
num2.reverse()
print(num1)
print(num2)
# OUTPUT:
[2, 5, 1, 7, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 7, 1, 5, 2]
Alternatively, you can use the list(list_name) as well.
num1 = [2, 5, 1, 7, 2, 3, 4, 5, 6]
num2 = list(num1)
num2.reverse()
print(num1)
print(num2)
# OUTPUT:
[2, 5, 1, 7, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 7, 1, 5, 2]
clear(), pop() & popitem()
get(), items() & keys()
update() & fromkeys()
Syntax: dictionary.clear() The clear() method for the dictionary works the same way it works in the list. This method removes all the elements from a dictionary.
blog = {
"language": "Python",
"Blogger": "Sahil Fruitwala",
"year": 2021
}
print(blog)
# OUTPUT: {'language': 'Python', 'Blogger': 'Sahil Fruitwala', 'year': 2021}
blog.clear()
print(blog)
# OUTPUT: {}
Syntax: dictionary.pop() or dictionary.pop(key, default_value) The pop() method removes and returns the specific element from the dictionary.
blog = {
"language": "Python",
"Blogger": "Sahil Fruitwala",
"year": 2021
}
print(blog)
# OUTPUT: {'language': 'Python', 'Blogger': 'Sahil Fruitwala', 'year': 2021}
year = blog.pop("year")
print(blog) # OUTPUT: {'language': 'Python', 'Blogger': 'Sahil Fruitwala'}
print(year) # 2021
The pop() is used when we want some default value in case the key does not exist.
blog = {
"language": "Python",
"Blogger": "Sahil Fruitwala",
"year": 2021
}
year = blog.pop("years", "NotFound")
print(blog) # OUTPUT: {'language': 'Python', 'Blogger': 'Sahil Fruitwala', 'year': 2021}
print(year) # NotFound
Syntax: dictionary.popitem() The popitem() removes the last key-value pair from the dictionary and returns as a tuple.
blog = {
"language": "Python",
"Blogger": "Sahil Fruitwala",
"year": 2021
}
year = blog.popitem()
print(blog)
# OUTPUT: {'language': 'Python', 'Blogger': 'Sahil Fruitwala'}
print(year)
# OUTPUT: ('year', 2021)
Syntax: dictionary.get(keyname) The get method extracts the value of the specified key
blog = {
"language": "Python",
"Blogger": "Sahil Fruitwala",
"year": 2021
}
year = blog.get("year")
print(year)
# OUTPUT: 2021
Syntax: dictionary.items() The items method returns the view object of the dictionary. The view object contains all the key-value pairs. One drawback of using the items() method is, that if you make any change in the root or original dictionary it will reflect in the view object variable as well.
blog = {
"language": "Python",
"Blogger": "Sahil Fruitwala",
"year": 2021
}
view_object = blog.items()
blog['year'] = 2022
print(view_object)
# OUTPUT: dict_items([('language', 'Python'), ('Blogger', 'Sahil Fruitwala'), ('year', 2022)])
Syntax: dictionary.keys() and dictionary.values() As the name suggests, keys() and values() methods return the view object or keys and values of a given dictionary.
blog = {
"language": "Python",
"Blogger": "Sahil Fruitwala",
"year": 2021
}
keys = blog.keys()
print(keys)
# OUTPUT: dict_keys(['language', 'Blogger', 'year'])
values = blog.values()
print(values)
# OUTPUT: dict_values(['Python', 'Sahil Fruitwala', '2022'])
Syntax: dictionary.get({key:value}) The update method updates the existing key with a specified value and if the key does not exist it adds the new key-value pair.
blog = {
"language": "Python",
"Blogger": "Sahil Fruitwala",
"year": 2021
}
blog.update({"type": "New"})
print(blog)
# OUTPUT: {'language': 'Python', 'Blogger': 'Sahil Fruitwala', 'year': 2021, 'type': 'New'}
blog.update({"type": "OLD"})
print(blog)
# OUTPUT: {'language': 'Python', 'Blogger': 'Sahil Fruitwala', 'year': 2021, 'type': 'OLD'}
Syntax: dict.fromkeys(keys, defaultvalue) When we new parameters from the beginning but are not aware of their values to them, at that time we can create a dictionary with keys and default values.
keys = ( "Python", "Sahil Fruitwala", 2021 )
blog = dict.fromkeys(keys)
print(blog)
# OUTPUT: {'Python': None, 'Sahil Fruitwala': None, 2021: None}
blog1 = dict.fromkeys(keys, "")
print(blog1)
# OUTPUT: {'Python': '', 'Sahil Fruitwala': '', 2021: ''}
Finally! We are at the end of this section 😁.
I know, it is a lot to take in at a time. But, you don't need to remember everything that I have mentioned here. I just showed you so that you can recall what is possible and what is not. There are some other methods as well that I have not mentioned here.
If you want to find out more about the List and Dictionary methods, check out GeeksforGeeks.
That was it!
Make sure to share any thoughts, questions, or concerns. Let me know if you need any help or want to discuss something. Reach out to me on Twitter or LinkedIn. Make sure to share any thoughts, questions, or concerns. I would love to see them.
Thank you for your precious time ❤