<strong>DAY 1</strong> <strong>TUPLE</strong> A tuple is a collection similar to a Python list. The primary difference is that we cannot modify a tuple once it is created. We create a tuple by placing items inside parentheses (). For example, numbers = (1, 2, -5) print(numbers) Output: (1, 2, -5) Create a Tuple Using tuple() Constructor method We can also create a tuple using a tuple() constructor. For example, name = tuple(('Jack', 'Maria', 'David')) print(name) Output: ('Jack', 'Maria', 'David') Different Types of Python Tuples Here are the different types of tuples we can create in Python. Empty Tuple create an empty tuple empty_tuple = () print(empty_tuple) Output: () Tuple of different data types tuple of string types names = ('James', 'Jack', 'Eva') print (names) tuple of float types float_values = (1.2, 3.4, 2.1) print(float_values) Tuple of mixed data types tuple including string and integer mixed_tuple = (2, 'Hello', 'Python') print(mixed_tuple) Output: (2, 'Hello', 'Python') CHARACTERISTICS OF TUPLE Tuples are: Ordered - They maintain the order of elements. Immutable - They cannot be changed after creation. Allow duplicates - They can contain duplicate values. ACCESS TUPLE ITEMS Each item in a tuple is associated with a number, known as a index. The index always starts from 0, meaning the first item of a tuple is at index 0, the second item is at index 1, and so on. name = ('John', 'Peter', 'James') inex = 0 1 2 We use index numbers to access tuple items. For example, languages = ('Python', 'Swift', 'C++') access the first item print(languages[0]) # Python access the third item print(languages[2]) # C++ Tuple Cannot be Modified Python tuples are immutable (unchangeable). We cannot add, change, or delete items of a tuple. If we try to modify a tuple, we will get an error. For example, cars = ('BMW', 'Tesla', 'Ford', 'Toyota') trying to modify a tuple cars[0] = 'Nissan' # error print(cars) PYTHON TUPLE LENGTH We use the len() function to find the number of items present in a tuple. For example, cars = ('BMW', 'Tesla', 'Ford', 'Toyota') print('Total Items:', len(cars)) Output: Total Items: 4 # Output apple banana orange Check if an Item Exists in the Tuple We use the in keyword to check if an item exists in the tuple. For example, colors = ('red', 'orange', 'blue') print('yellow' in colors) # False print('red' in colors) # True Change Tuple Items Python Tuples are immutable - we cannot change the items of a tuple once created. If we try to do so, we will get an error. For example, fruits = ('apple', 'cherry', 'orange') trying to change the second item to 'banana' fruits[1] = 'banana' print(fruits) Output: TypeError: 'tuple' object does not support item assignment Delete Tuples We cannot delete individual items of a tuple. However, we can delete the tuple itself using the del statement. For example, animals = ('dog', 'cat', 'rat') deleting the tuple del animals Here, we have deleted the animals tuple. Create a Python Tuple With One Item When we want to create a tuple with a single item, we might do the following: var = ('Hello') print(var) # string But this would not create a tuple; instead, it would be considered a string. To solve this, we need to include a trailing comma after the item. For example, var = ('Hello',) print(var) # tuple Output: ('Hello',) <strong>DAY 2</strong> <strong>SET</strong> A set is a collection of unique data, meaning that elements within a set cannot be duplicated. For instance, if we need to store information about student IDs, a set is suitable since student IDs cannot have duplicates. Create a Set in Python In Python, we create sets by placing all the elements inside curly braces {}, separated by commas. A set can have any number of items and they may be of different types (integer, float, tuple, string, etc.). But a set cannot have mutable elements like lists, sets or dictionaries as its elements. Let's see an example, create a set of integer type student_id = {112, 114, 116, 118, 115} print('Student ID:', student_id) Output Student ID: {112, 114, 115, 116, 118} create a set of string type vowel_letters = {'a', 'e', 'i', 'o', 'u'} print('Vowel Letters:', vowel_letters) Output Vowel Letters: {'u', 'a', 'e', 'i', 'o'} create a set of mixed data types mixed_set = {'Hello', 101, -2, 'Bye'} print('Set of mixed data types:', mixed_set) Output Set of mixed data types: {'Hello', 'Bye', 101, -2} In the above examples, we have created different types of sets by placing all the elements inside the curly braces {}. Note: When you run this code, you might get output in a different order. This is because the set has no particular order. Create an Empty Set in Python Creating an empty set is a bit tricky. Empty curly braces {} will make an empty dictionary in Python. To make a set without any elements, we use the set() function without any argument. For example, # create an empty set empty_set = set() # check data type of empty_set print('Data type of empty_set:', type(empty_set)) # Output Data type of empty_set: <class 'set'> # create an empty dictionary empty_dictionary = { } # check data type of dictionary_set print('Data type of empty_dictionary:',type(empty_dictionary)) # Output Data type of empty_dictionary: <class 'dict'> Here, empty_set - an empty set created using set() empty_dictionary - an empty dictionary created using Finally, we have used the type() function to know which class empty_set and empty_dictionary belong to. Duplicate Items in a Set Let's see what will happen if we try to include duplicate items in a set. numbers = {2, 4, 6, 6, 2, 8} print(numbers) # Output {8, 2, 4, 6} Here, we can see there are no duplicate items in the set as a set cannot contain duplicates. Add and Update Set Items in Python Sets are mutable. However, since they are unordered, indexing has no meaning. We cannot access or change an element of a set using indexing or slicing. The set data type does not support it. Add Items to a Set in Python In Python, we use the add() method to add an item to a set. For example, numbers = {21, 34, 54, 12} print('Initial Set:',numbers) # Output Initial Set: {34, 12, 21, 54} using add() method numbers.add(32) print('Updated Set:', numbers) # Output Updated Set: {32, 34, 12, 21, 54} In the above example, we have created a set named numbers. Notice the line, numbers.add(32) Here, add() adds 32 to our set. Update Python Set The update() method is used to update the set with items other collection types (lists, tuples, sets, etc). For example, companies = {'Lacoste', 'Ralph Lauren'} tech_companies = ['apple', 'google', 'apple'] # using update() method companies.update(tech_companies) print(companies) # Output: {'google', 'apple', 'Lacoste', 'Ralph Lauren'} Here, all the unique elements of tech_companies are added to the companies set. Remove an Element from a Set We use the discard() method to remove the specified element from a set. For example, languages = {'Swift', 'Java', 'Python'} print('Initial Set:',languages) # Output Initial Set: {'Python', 'Swift', 'Java'} #remove 'Java' from a set removedValue = languages.discard('Java') print('Set after remove():', languages) # Output Set after remove(): {'Python', 'Swift'} Here, we have used the discard() method to remove 'Java' from the languages set. <strong>DAY 3</strong> <strong>PYTHON DICTIONARY</strong> A Python dictionary is a collection of items, similar to lists and tuples. However, unlike lists and tuples, each item in a dictionary is a key-value pair (consisting of a key and a value). Create a Dictionary We create a dictionary by placing key: value pairs inside curly brackets {}, separated by commas. For example, #creating a dictionary country_capitals = { "Germany": "Berlin", "Canada": "Ottawa", "England": "London" } #printing the dictionary print(country_capitals) #Output {'Germany': 'Berlin', 'Canada': 'Ottawa', 'England': 'London'} The country_capitals dictionary has three elements (key-value pairs), where 'Germany' is the key and 'Berlin' is the value assigned to it and so on. country_capitals = { "Germany": "Berlin", ----- element 1 "Canada": "Ottawa", ------ element 2 "England": "London" ------ element 3 } key : value Notes: Dictionary keys must be immutable, such as tuples, strings, integers, etc. We cannot use mutable (changeable) objects such as lists as keys. <strong>VALID AND INVALID DICTIONARIES</strong> KEYS OF A DICTIONARY MUST BE IMMUTABLE Immutable objects can't be changed once created. Some immutable objects in Python are integer, tuple and string. # valid dictionary # integer as a key my_dict = {1: "one", 2: "two", 3: "three"} # valid dictionary # tuple as a key my_dict = {(1, 2): "one two", 3: "three"} # invalid dictionary # Error: using a list as a key is not allowed my_dict = {1: "Hello", [1, 2]: "Hello Hi"} # valid dictionary # string as a key, list as a value my_dict = {"USA": ["Chicago", "California", "New York"]} In this example, we have used integers, tuples, and strings as keys for the dictionaries. When we used a list as a key, an error message occurred due to the list's mutable nature. Note: Dictionary values can be of any data type, including mutable types like lists. KEYS OF A DICTIONARY MUST BE UNIQUE The keys of a dictionary must be unique. If there are duplicate keys, the later value of the key overwrites the previous value. houses = { "Harry Potter": "Gryffindor", "Hermione Granger": "Gryffindor", "Ron Weasley": "Gryffindor", # duplicate key with a different house "Harry Potter": "Slytherin" } print(houses) #Output {'Harry Potter': 'Slytherin', 'Hermione Granger': 'Gryffindor', 'Ron Weasley': 'Gryffindor'} Here, the key Harry Potter is first assigned to Gryffindor. However, there is a second entry where Harry Potter is assigned to Slytherin. As duplicate keys are not allowed in a dictionary, the last entry Slytherin overwrites the previous value Gryffindor. Access Dictionary Items We can access the value of a dictionary item by placing the key inside square brackets. country_capitals = { "Germany": "Berlin", "Canada": "Ottawa", "England": "London" } # access the value of keys print(country_capitals["Germany"]) # Output: Berlin print(country_capitals["England"]) # Output: London Note: We can also use the get() method to access dictionary items.