Although Python provides us with many list methods, it is good practice and very instructive to think about how they are implemented. Implement a Python methods that works like the following: a. count b. in: return True if the item is in the list c. reverse d. index: return -1 if the item is not in the list e. insert

Respuesta :

Answer:

Here are the methods:

a) count

def count(object, list):  

   counter = 0

   for i in list:

       if i == object:

           counter = counter + 1

   return counter

b) in : return True if the item is in the list

def include(object, list):  

   for i in list:

       if i == object:

           return True

   return False

c)  reverse

def reverse(list):

   first = 0            

   last = len(list)-1    

   while first<last:

       list[first] , list[last] = list[last] , list[first]

       first = first + 1

       last = last - 1

   return list

d) index: return -1 if the item is not in the list  

def index(object, list):

   for x in range(len(list)):

       if list[x] == object:

           return x

   return -1

e)  insert

def insert(object, index, list):

   return list[:index] + [object] + list[index:]

Explanation:

a)

The method count takes object and a list as parameters and returns the number of times that object appears in the list.

counter variable is used to count the number of times object appears in list.

Suppose

list = [1,1,2,1,3,4,4,5,6]

object = 1

The for loop i.e. for i in list iterates through each item in the list

if condition if i == object inside for loop checks if the item of list at i-th position is equal to the object.  So for the above example, this condition checks if 1 is present in the list. If this condition evaluates to true then the value of counter is incremented to 1 otherwise the loop keeps iterating through the list searching for the occurrence of object (1) in the list.

After the complete list is moved through, the return counter statement returns the number of times object (i.e. 1 in the example) occurred in the list ( i.e. [1,1,2,1,3,4,4,5,6]  ) As 1 appears thrice in the list so the output is 3.

b)  

The method include takes two parameters i.e. object and list as parameters and returns True if the object is present in the list otherwise returns False. Here i have not named the function as in because in is a reserved keyword in Python so i used include as method name.

For example if list = [1,2,3,4] and object = 3

for loop for i in list iterates through each item of the list and the if condition if i == object checks if the item at i-th position of the list is equal to the specified object. This means for the above example the loop iterates through each number in the list and checks if the number at i-th position in the list is equal to 3 (object). When this if condition evaluates to true, the method returns True as output otherwise returns False in output ( if 3 is not found in the list). As object 3 is present in the list so the output is True.

c) reverse method takes a list as parameter and returns the list in reverse order.

Suppose list = [1,2,3,4,5,6]

The function has two variables i.e. first that is the first item of the list and last which is the last item of the list. Value of first is initialized to 0 and value of last is initialized to len(list)-1 where len(list) = 6 and 6-1=5 so last=5 for the above example. These are basically used as index variables to point to the first and last items of list.

The while loop executes until the value of first exceeds that of last.

Inside the while loop the statement list[first] , list[last] = list[last] , list[first]  interchanges the values of elements of the list which are positioned at first and last. After each interchange the first is incremented to 1 and last is decremented to 1.

For example at first iteration:

first = 0

last = 5

list[0] , list[5] = list[5] , list[0]

This means in the list [1,2,3,4,5,6] The first element 1 is interchanged with last element 6. Then the value of first is incremented and first = 1, last = 4 to point at the elements 2 and 5 of the list and then exchanges them too.

This process goes on until while condition evaluates to false. When the loop breaks  statement return list returns the reversed list.

d) The method index takes object and list as parameters and returns the index of the object/item if it is found in the list otherwise returns -1

For example list = [1,2,4,5,6] and object = 3

for loop i.e.  for x in range(len(list)):  moves through each item of the list until the end of the list is reached. if statement  if list[x] == object:  checks if the x-th index of the list is equal to the object. If it is true returns the index position of the list where the object is found otherwise returns -1. For the above examples 3 is not in the list so the output is -1  

e) insert

The insert function takes as argument the object to be inserted, the index where the object is to be inserted and the list in which the object is to be inserted.

For example list = [0, 1, 2, 4, 5, 6] and object = 3 and index = 3

3 is to be inserted in list  [1,2,4,5] at index position 3 of the list. The statement:

return list[:index] + [object] + list[index:]

list[:index] is a sub list that contains items from start to the index position. For above example:

list[:index] = [0, 1, 2]

list[index:] is a sub list that contains items from index position to end of the list.

list[index:] = [4, 5, 6]

[object] = [3]

So above statement becomes:

[0, 1, 2] + [3] + [4, 5, 6]

So the output is:

[0, 1, 2, 3, 4, 5, 6]    

Ver imagen mahamnasir
Ver imagen mahamnasir
Ver imagen mahamnasir
Ver imagen mahamnasir
Ver imagen mahamnasir