Skip to content

Commit

Permalink
create files for day-8
Browse files Browse the repository at this point in the history
  • Loading branch information
iam-veeramalla committed Nov 2, 2023
1 parent 8f08b88 commit 9a3ae07
Show file tree
Hide file tree
Showing 13 changed files with 277 additions and 0 deletions.
60 changes: 60 additions & 0 deletions Day-08/01-Notes/01-list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Understanding Lists and List Data Structure

## What is a List?
A list is a fundamental data structure in programming that allows you to store a collection of items. Lists are ordered and can contain elements of various data types, such as numbers, strings, and objects.

## Creating Lists
You can create a list in various programming languages. In Python, for example, you create a list using square brackets:
```python
my_list = [1, 2, 3, 'apple', 'banana']
```

## List Indexing
List elements are indexed, starting from 0 for the first element. You can access elements by their index.
```python
first_element = my_list[0] # Access the first element (1)
```

## List Length
You can find the length of a list using the `len()` function.
```python
list_length = len(my_list) # Length of the list (5)
```

# List Manipulation and Common List Operations

## Appending to a List
You can add elements to the end of a list using the `append()` method.
```python
my_list.append(4) # Adds 4 to the end of the list
```

## Removing from a List
You can remove elements by their value using the `remove()` method.
```python
my_list.remove('apple') # Removes 'apple' from the list
```

## Slicing a List
Slicing allows you to create a new list from a subset of the original list.
```python
subset = my_list[1:4] # Creates a new list with elements at index 1, 2, and 3
```

## Concatenating Lists
You can combine two or more lists to create a new list.
```python
new_list = my_list + [5, 6] # Concatenates my_list with [5, 6]
```

## Sorting a List
You can sort a list in ascending or descending order using the `sort()` method.
```python
my_list.sort() # Sorts the list in ascending order
```

## Checking for an Element
You can check if an element exists in a list using the `in` keyword.
```python
is_present = 'banana' in my_list # Checks if 'banana' is in the list (True)
```
58 changes: 58 additions & 0 deletions Day-08/01-Notes/02-tuple.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Understanding Tuples

## What is a Tuple?
A tuple is a data structure similar to a list, but unlike lists, tuples are immutable, meaning their contents cannot be changed after creation. Tuples are typically used for grouping related data.

## Creating Tuples
You can create a tuple in various programming languages. In Python, for example, you create a tuple using parentheses:
```python
my_tuple = (1, 2, 'apple', 'banana')
```

## Tuple Indexing
Tuple elements are indexed, starting from 0 for the first element. You can access elements by their index, just like lists.
```python
first_element = my_tuple[0] # Access the first element (1)
```

## Tuple Length
You can find the length of a tuple using the `len()` function.
```python
tuple_length = len(my_tuple) # Length of the tuple (4)
```

# Common Tuple Operations

## Accessing Tuple Elements
Tuples are immutable, so you can only access their elements.
```python
second_element = my_tuple[1] # Access the second element (2)
```

## Tuple Packing and Unpacking
You can pack multiple values into a tuple and unpack them into separate variables.
```python
coordinates = (3, 4)
x, y = coordinates # Unpack the tuple into x and y (x=3, y=4)
```

## Concatenating Tuples
You can concatenate two or more tuples to create a new tuple.
```python
new_tuple = my_tuple + (3.14, 'cherry') # Concatenates my_tuple with a new tuple
```

## Checking for an Element
You can check if an element exists in a tuple using the `in` keyword.
```python
is_present = 'apple' in my_tuple # Checks if 'apple' is in the tuple (True)
```

## Using Tuples for Multiple Return Values
Tuples are often used to return multiple values from a function.
```python
def get_coordinates():
return (3, 4)

x, y = get_coordinates() # Unpack the returned tuple (x=3, y=4)
```
58 changes: 58 additions & 0 deletions Day-08/01-Notes/03-list-vs-tuple.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Differences Between Tuples and Lists

Tuples and lists are both common data structures used in programming, but they have some fundamental differences that make them suitable for different purposes. Let's explore these differences:

## 1. Mutability

**List:** Lists are mutable, meaning their elements can be added, removed, or modified after creation. You can use methods like `append()`, `remove()`, and `pop()` to change the contents of a list.

**Tuple:** Tuples are immutable, and once created, their elements cannot be changed, added, or removed. You can't use methods to modify the tuple.

## 2. Syntax

**List:** Lists are created using square brackets `[ ]`. Elements are separated by commas.

```python
my_list = [1, 2, 3, 'apple', 'banana']
```

**Tuple:** Tuples are created using parentheses `( )`. Elements are also separated by commas.

```python
my_tuple = (1, 2, 'apple', 'banana')
```

## 3. Performance

**List:** Lists may have slightly slower performance compared to tuples because they are mutable. Modifying a list requires memory reallocation, which can be slower for large lists.

**Tuple:** Tuples have better performance, especially for read-only operations, because of their immutability. They do not require memory reallocation.

## 4. Use Cases

**List:** Lists are used when you need a collection of elements that can change, such as a dynamic list of items or data that needs to be modified.

**Tuple:** Tuples are used when you need an ordered collection of elements that should not change, such as representing a point in 2D space (x, y), or when you want to ensure the integrity of the data.

## 5. Iteration

**List:** You can use a for loop or other iteration methods to iterate over the elements of a list.

```python
for item in my_list:
# Process each item
```

**Tuple:** You can iterate over the elements of a tuple in the same way as lists using a for loop.

```python
for item in my_tuple:
# Process each item
```

## 6. Memory Usage

**List:** Lists generally consume more memory than tuples because they need to store additional information to support their mutability.

**Tuple:** Tuples consume less memory because they are immutable, and the interpreter can optimize memory usage.

52 changes: 52 additions & 0 deletions Day-08/01-Notes/04-faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
**Q1: What is a list in Python, and how is it used in DevOps?**

*Answer:*
A list in Python is a collection of ordered and mutable elements. In DevOps, lists are often used to manage and manipulate data, such as configurations, server names, and deployment targets. For example, you can use a list to store a list of servers that need to be provisioned or configured.

**Q2: How do you create a list in Python, and can you provide an example related to DevOps?**

*Answer:*
In Python, you create a list using square brackets `[]`. Here's an example related to DevOps:

```python
servers = ['web-server-01', 'db-server-01', 'app-server-01']
```

This list can be used to represent a list of servers in a DevOps environment.

**Q3: What is the difference between a list and a tuple in Python, and when would you choose one over the other in a DevOps context?**

*Answer:*
The key difference is mutability; lists are mutable, while tuples are immutable. In DevOps, if you need a collection of items that won't change (e.g., server configurations, deployment steps), you would use a tuple. If the data can change (e.g., a list of active servers, configuration settings that may be updated), you would use a list.

**Q4: How can you access elements in a list, and provide a DevOps-related example?**

*Answer:*
You can access elements in a list by using their index. In a DevOps context, if you have a list of server names and want to access the first server, you would do the following:

```python
servers = ['web-server-01', 'db-server-01', 'app-server-01']
first_server = servers[0]
```

**Q5: How do you add an element to the end of a list in Python? Provide a DevOps example.**

*Answer:*
You can add an element to the end of a list using the `append()` method. In DevOps, if you want to add a new server to a list of servers, you can do this:

```python
servers = ['web-server-01', 'db-server-01']
servers.append('app-server-01')
```

Now, `servers` will contain 'app-server-01'.

**Q6: How can you remove an element from a list in Python, and can you provide a DevOps use case?**

*Answer:*
You can remove an element from a list using the `remove()` method. In a DevOps use case, you might want to remove a server from a list of servers that are no longer needed:

```python
servers = ['web-server-01', 'db-server-01', 'app-server-01']
servers.remove('db-server-01')
```
14 changes: 14 additions & 0 deletions Day-08/02-Assigment/01-list-questions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Basic-Level List Questions

**Q1: What is a list in Python, and how is it used in DevOps?**

**Q2: How do you create a list in Python, and can you provide an example related to DevOps?**

**Q3: What is the difference between a list and a tuple in Python, and when would you choose one over the other in a DevOps context?**

**Q4: How can you access elements in a list, and provide a DevOps-related example?**

**Q5: How do you add an element to the end of a list in Python? Provide a DevOps example.**

**Q6: How can you remove an element from a list in Python, and can you provide a DevOps use case?**

34 changes: 34 additions & 0 deletions Day-08/02-Assigment/02-list-answers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Basic-Level List Answers

**Q1: What is a list in Python, and how is it used in DevOps?**
A list in Python is a collection of ordered and mutable elements. In DevOps, lists are often used to manage and manipulate data, such as configurations, server names, and deployment targets. For example, you can use a list to store a list of servers that need to be provisioned or configured.

**Q2: How do you create a list in Python, and can you provide an example related to DevOps?**
In Python, you create a list using square brackets `[]`. Here's an example related to DevOps:
```python
servers = ['web-server-01', 'db-server-01', 'app-server-01']
```

**Q3: What is the difference between a list and a tuple in Python, and when would you choose one over the other in a DevOps context?**
The key difference is mutability; lists are mutable, while tuples are immutable. In DevOps, if you need a collection of items that won't change (e.g., server configurations, deployment steps), you would use a tuple. If the data can change (e.g., a list of active servers, configuration settings that may be updated), you would use a list.

**Q4: How can you access elements in a list, and provide a DevOps-related example?**
You can access elements in a list by using their index. In a DevOps context, if you have a list of server names and want to access the first server, you would do the following:
```python
servers = ['web-server-01', 'db-server-01', 'app-server-01']
first_server = servers[0]
```

**Q5: How do you add an element to the end of a list in Python? Provide a DevOps example.**
You can add an element to the end of a list using the `append()` method. In DevOps, if you want to add a new server to a list of servers, you can do this:
```python
servers = ['web-server-01', 'db-server-01']
servers.append('app-server-01')
```

**Q6: How can you remove an element from a list in Python, and can you provide a DevOps use case?**
You can remove an element from a list using the `remove()` method. In a DevOps use case, you might want to remove a server from a list of servers that are no longer needed:
```python
servers = ['web-server-01', 'db-server-01', 'app-server-01']
servers.remove('db-server-01')
```
1 change: 1 addition & 0 deletions Day-08/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Lists and Tuples

0 comments on commit 9a3ae07

Please sign in to comment.