DEV Community

Ugbem Job
Ugbem Job

Posted on

15 1 1 1 1

60 Days of Learning Python

Day 1: Data Types

What I learnt

  • Numbers
  • Strings
  • Booleans
  • Lists
  • Tuples
  • Sets
  • Dictionaries

Numbers

Numbers are used to represent integers, floating point numbers, and complex numbers.

  • Integers
>>> 1
1
>>> 2
2
Enter fullscreen mode Exit fullscreen mode
  • Floats: Floating point numbers are represented in Python using decimal points. Also known as real numbers.
  >>> 1.1
  1.1
Enter fullscreen mode Exit fullscreen mode
  • Complex Numbers: Complex numbers are written in the form, x + yj, where x is the real part and y is the imaginary part.
  >>> 1 + 2j
  (1+2j)
Enter fullscreen mode Exit fullscreen mode

Strings

Strings are used to represent text data, the text is given under quote marks. Python treats single quotes the same as double quotes.

  • Single Quotes
  • Double Quotes
  • Triple Quotes: Triple quotes are used to span the string across multiple lines.
>>> 'Hello World'
'Hello World'
>>> "Hello World"
'Hello World'
>>> """Hello World"""
'Hello World'
Enter fullscreen mode Exit fullscreen mode
  • String Concatenation: Strings can be concatenated (glued together) with the + operator, and repeated with *:
>>> 'Hello' + 'World'
'HelloWorld'
>>> 'Hello' * 3
'HelloHelloHello'
Enter fullscreen mode Exit fullscreen mode
  • String Slicing: Strings can be sliced (subscripted), with the syntax [start:stop:step]. If start is omitted, it is default to 0. If stop is omitted, it is default to the end of the string. If step is omitted, it is default to 1.
>>> word = 'Python'
>>> word[0]  # character in position 0
'P'
>>> word[5]  # character in position 5
'n'
>>> word[-1]  # last character
'n'
>>> word[-2]  # second-last character
'o'
>>> word[0:2]  # characters from position 0 (included) to 2 (excluded)
'Py'
>>> word[2:5]  # characters from position 2 (included) to 5 (excluded)
'tho'
>>> word[:2] + word[2:]
'Python'
Enter fullscreen mode Exit fullscreen mode
  • String Methods: Strings have a bunch of useful methods. Some of them are listed below.
>>> word = 'Python'
>>> word.upper()
'PYTHON'
>>> word.lower()
'python'
>>> word.startswith('P')
True
>>> word.endswith('n')
True
Enter fullscreen mode Exit fullscreen mode

You can find more string methods here.

Booleans

Booleans represent one of two values: True or False.

>>> True
True
>>> False
False
Enter fullscreen mode Exit fullscreen mode

Lists

A list is a collection of items in a particular order.
You can make a list that includes the letters of the alphabet, the digits from 0-9.
You can put anything you want into a list, and the items in your list don't have to be related in any particular way.
The syntax for defining a list is to enclose the items in square brackets, with commas between them.

>>> [1, 2, 3]
[1, 2, 3]
>>> ['Hello', 'World']
['Hello', 'World']
>>> [1, 'Hello', 2.5]
[1, 'Hello', 2.5]
Enter fullscreen mode Exit fullscreen mode

Characteristics of Lists:

  • Ordered
  • Mutable
  • Allows Duplicate Elements

Example of List and Manipulating it

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
 print(bicycles)
 print(bicycles[0])
Enter fullscreen mode Exit fullscreen mode
  • Slicing a list => When slicing a list, just as strings, it has 3 parts i.e [start:stop:stepover]
    print(bicycles[1:3])
Enter fullscreen mode Exit fullscreen mode
  • Duplicating a list - [:] is used to create an entirely new copy of the existing list
    new_bicycles = bicycles[1::2]
    new_bicycles[0] = 'seat'
    print(new_bicycles)
    print(bicycles)

    ```
{% endraw %}


- Matrix: A matrix is a two-dimensional data structure that can store numbers or other types of data ie it's a liat that stores another list inside of them.

### Example of Matrix
{% raw %}


```python
    matrix = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]

    print(matrix[2][0])
    ```



### List Methods

- append() => This method adds an item to the end of the list



```python
 bicycles.append('word')
Enter fullscreen mode Exit fullscreen mode
  • insert() => This method adds an item at a specific index
bicycles.insert(0, 'shoo')
Enter fullscreen mode Exit fullscreen mode
  • extend() => This method adds multiple items to the end of the list
bicycles.extend(['word2', 'word3'])
Enter fullscreen mode Exit fullscreen mode
  • remove() => This method removes an item from the list by its value and not by its index
bicycles.remove('word2')
Enter fullscreen mode Exit fullscreen mode
  • pop() => This method removes the last item from the list and returns the popped item
new_bask = bicycles.pop(0)
Enter fullscreen mode Exit fullscreen mode
  • clear() => This method removes all the items from the list and returns an empty list
bicycles.clear()
Enter fullscreen mode Exit fullscreen mode
  • index() => This method returns the index of the first item with the specified value and returns an error if the value is not found

  • You can learn more about the index method here

print(bicycles.index('word3'))
Enter fullscreen mode Exit fullscreen mode
  • count() => This method returns the number of times the specified value appears in the list
print(bicycles.count('word3'))
Enter fullscreen mode Exit fullscreen mode

Common List Patterns

bicycles.sort()
bicycles.reverse()

print(bicycles[::-1]) # This is used to reverse a list and it creates a new copy of the list
print(bicycles)

Enter fullscreen mode Exit fullscreen mode

List Unpacking: This is used to assign multiple variables at once

a, b, c, *rest, d = bicycles

print(rest)

print(d)
Enter fullscreen mode Exit fullscreen mode

Looping through a list

  • For Loop
for bicycle in bicycles:
    print(bicycle)
Enter fullscreen mode Exit fullscreen mode
  • Remove duplicates from a list
names = ['John', 'Bob', 'Mosh', 'Sarah', 'Mosh', 'John', 'Anne', 'Jane', 'Bob', 'Anne']

duplicate_names = []
unique_names = []

for name in names:
    if name not in unique_names:
        unique_names.append(name)
    else:
        duplicate_names.append(name)
print(unique_names)
print(duplicate_names)


pictures = [
[0, 0, 0, 1, 0, 0, 0],
[0, 0, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0]
]

for row in pictures:
    for pixels in row:
        if pixels == 1:
            print('\*', end='')
        else:
            print(' ', end='')
    print('') # This is used to print a new line after each row
Enter fullscreen mode Exit fullscreen mode
  • While Loop
 i = 0
 while i < len(bicycles):
    print(bicycles[i])
    i += 1
Enter fullscreen mode Exit fullscreen mode
  • Looping through a list of dictionaries
users = [{'username': 'Jobizil', 'email': 'jobizil@email.com','age': 26},
{'username': 'Quill', 'email': 'quill@email.com', 'age': 22}]

for user in users:
    print(user['username'])
Enter fullscreen mode Exit fullscreen mode

List Comprehension: This is used to create a new list from an existing list

new_list = [expression for item in list if conditional]
new_list = [item['email'] for item in users]
 print(new_list)
Enter fullscreen mode Exit fullscreen mode

List Comprehension with if statement

new_list = [item['email'] for item in users if item['age'] > 25]
print(new_list)
Enter fullscreen mode Exit fullscreen mode

Tuples: Just like Lists, Tuples are used to store multiple items in a single variable but they are stored within brackets (elements).

    >>> (1, 2, 3)
    (1, 2, 3)
    >>> ('Hello', 'World')
    ('Hello', 'World')
    >>> (1, 'Hello', 2.5)
    (1, 'Hello', 2.5)
Enter fullscreen mode Exit fullscreen mode

Characteristics of Tuple:

  • Ordered
  • Immutable
  • Allows Duplicate Elements

Tuple Methods: You can learn more about the tuple methods here

Sets

A set is a collection which is unordered and unindexed. In Python, sets are written with curly brackets.

>>> {1, 2, 3}
{1, 2, 3}
>>> {'Hello', 'World'}
{'Hello', 'World'}
>>> {1, 'Hello', 2.5}
{1, 'Hello', 2.5}
Enter fullscreen mode Exit fullscreen mode

Characteristics of Sets:

  • Unordered
  • Mutable
  • Does Not Allow Duplicate Elements

Example of a set

fruits = {'apple', 'orange', 'apple', 'grape', 'pear', 'banana'}
fruits_2 = {'babana', 'pawpaw', 'apple', 'orange', 'pear', 'banana', 'mango'}
print(fruits)
Enter fullscreen mode Exit fullscreen mode

Common Set Patterns

  • Convert a list to a set
 fruits_list = ['apple', 'orange', 'apple', 'grape', 'pear', 'banana']
 fruits_set = set(fruits_list)
 print(list(fruits_set))
Enter fullscreen mode Exit fullscreen mode
  • Remove duplicates from a list
 fruits_list = ['apple', 'orange', 'apple', 'grape', 'pear', 'banana']
fruits_set = set(fruits_list)
print(list(fruits_set))
Enter fullscreen mode Exit fullscreen mode
  • Find the intersection of two lists
fruits_list = ['apple', 'orange', 'apple', 'grape', 'pear', 'banana']

fruits_list_2 = ['apple', 'orange', 'apple', 'grape', 'pear', 'banana', 'mango']

 fruits_set = set(fruits_list)
 fruits_set_2 = set(fruits_list_2)

 print(fruits_set.intersection(fruits_set_2))

Enter fullscreen mode Exit fullscreen mode
  • Find the difference between two lists
print(fruits_set.difference(fruits_set_2))
print(fruits_set_2.difference(fruits_set))
Enter fullscreen mode Exit fullscreen mode
  • Find the union of two lists
print(fruits_set.union(fruits_set_2))
Enter fullscreen mode Exit fullscreen mode

Set Methods

  • add() => This method adds an element to the set
fruits.add('mango')
 print(fruits)
Enter fullscreen mode Exit fullscreen mode
  • clear() => This method removes all the elements from the set
fruits.clear()
 print(fruits)
Enter fullscreen mode Exit fullscreen mode
  • copy() => This method returns a copy of the set
fruits_copy = fruits.copy()
 print(fruits_copy)
Enter fullscreen mode Exit fullscreen mode
  • difference() => This method returns a set containing the difference between two or more sets
print(fruits.difference(fruits_2))
print(fruits_2.difference(fruits))
Enter fullscreen mode Exit fullscreen mode
  • difference_update() => This method removes the items in this set that are also included in another, specified set and returns a set
print(fruits.difference_update(fruits_2))
print(fruits)
Enter fullscreen mode Exit fullscreen mode
  • discard() => This method removes the specified element from the set
fruits.discard('apple')
print(fruits)
Enter fullscreen mode Exit fullscreen mode
  • intersection() => This method returns a set that contains the similarity between two or more sets
print(fruits.intersection(fruits_2))
Enter fullscreen mode Exit fullscreen mode
  • intersection_update() => This method removes the items in this set that are not present in other, specified set(s) and returns a set
print(fruits.intersection_update(fruits_2))
Enter fullscreen mode Exit fullscreen mode
  • isdisjoint() => This method returns True if two sets have a null intersection
print(fruits.isdisjoint(fruits_2))
Enter fullscreen mode Exit fullscreen mode
  • issubset() => This method returns True if another set contains this set
print(fruits.issubset(fruits_2))
print(fruits_2.issubset(fruits))
Enter fullscreen mode Exit fullscreen mode
  • issuperset() => This method returns True if this set contains another set
print(fruits.issuperset(fruits_2))
print(fruits_2.issuperset(fruits))
Enter fullscreen mode Exit fullscreen mode
  • union() => This method returns a set that contains all items from the original set, and all items from the specified sets
print(fruits.union(fruits_2))
Enter fullscreen mode Exit fullscreen mode

You can learn more about the set methods here

Dictionaries

A dictionary in Python is a collection of key-value pairs usually unordered. Each key is connected to a value, and you can use a key to access the value associated with that key. A key's value can be a number, a string, a list, or even another dictionary. In fact, you can use any object that you can create in Python as a value in a dictionary.
They store data values in key:value pairs within curly braces {elements}.

>>> {'name': 'John', 'age': 30}
{'name': 'John', 'age': 30}
>>> {'name': 'John', 'age': 30, 'name': 'Jane'}
{'name': 'Jane', 'age': 30}
Enter fullscreen mode Exit fullscreen mode

Characteristics of Dictionaries:

  • Unordered
  • Mutable
  • Does Not Allow Duplicate Keys

Example of a dictionary

user = {'username': 'Jobizil',
        'email': 'jobizil@email.com',
        'age': 25,
        'color': 'blue',
        'is_active': True,
        'is_admin': True,
        'is_staff': False,
        }
 print(user['username'])
Enter fullscreen mode Exit fullscreen mode

Dictionary Methods

  • get() => This method returns the value of the specified key
  print(user.get('username'))
Enter fullscreen mode Exit fullscreen mode
  • keys() => This method returns a list of all the keys in the dictionary
  print(user.keys())
  print(user.values())
Enter fullscreen mode Exit fullscreen mode
  • items() => This method returns a list of tuples containing the key-value pairs
  print(user.items())
Enter fullscreen mode Exit fullscreen mode
  • clear() => This method removes all the items from the dictionary and returns an empty dictionary
  print(user.clear())
Enter fullscreen mode Exit fullscreen mode
  • pop() => This method removes the item with the specified key name and returns the value of the removed item
  print(user.pop('username'))
Enter fullscreen mode Exit fullscreen mode
  • popitem() => This method removes the last inserted item and returns a tuple containing the key-value pair of the removed item
  print(user.popitem())
Enter fullscreen mode Exit fullscreen mode
  • copy() => This method returns a copy of the dictionary
  user_2 = user.copy()
  print(user_2)
Enter fullscreen mode Exit fullscreen mode
  • update() => This method updates the dictionary with the specified key-value pairs
  user.update({'username': 'Quill', 'email': 'quill@email.com'})
  user_3 = user.copy()
  print(user_3)
Enter fullscreen mode Exit fullscreen mode

Read more about dictionary methods here

Common Dictionary Patterns

  • Looping through a dictionary

    ```python
    

    for key, value in user.items():
    print(f'Key: {key}')
    print(f'Value: {value}')

    
    
  • Looping through a dictionary keys

    for key in user.keys():
        print(key)
        ```
    {% endraw %}
    
  • Looping through a dictionary values
    {% raw %}

    for value in user.values():
    print(value)
    
  • Dictionary Comprehension:

Dictionary comprehension is a way to create a dictionary in a single line of code. It is a combination of a for loop and a dictionary.

Example of Dictionary Comprehension

```python
squared = {num: num**2 for num in [1, 2, 3, 4, 5]}
 print(squared)
```
Enter fullscreen mode Exit fullscreen mode
  • Dictionary Comprehension with conditional logic

Dictionary comprehension with conditional logic is a way to create a dictionary in a single line of code. It is a combination of a for loop, a conditional statement and a dictionary.

Example of Dictionary Comprehension with conditional logic

```python
squared = {num: num**2 for num in [1, 2, 3, 4, 5] if num % 2 == 0}
print(squared)
```
Enter fullscreen mode Exit fullscreen mode

Conclusion

I might not have covered everything in this article but I hope it helps you understand the basics of Python data structures. You can learn more about Python data structures here.

Also, I might not be able to update this article series as soon as I learn new things within my learning journey. But I will ensure I update it on my GitHub repo. You can check it out here.

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

While many AI coding tools operate as simple command-response systems, Qodo Gen 1.0 represents the next generation: autonomous, multi-step problem-solving agents that work alongside you.

Read full post →