2018-2019
2018-2019 copied to clipboard
Lecture "Organising information: ordered structures", exercise 3
Consider to have a queue obtained by processing, one by one, the elements included in the list of the first exercise, i.e. my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
. Describe the status of my_queue
after the execution of each of the following operations: my_queue.popleft()
, my_queue.append("Voldemort")
, my_queue.popleft()
.
''' my_queue.popleft(): removes "Draco" from the queue. my_queue.append("Voldemort"): add "Voldemort" to the last index of the queue. my_queue.popleft(): removes "Harry" from the queue.
finally printing my_queue will look like deque(["Hermione", "Ron", "Severus","Voldemort"]) '''
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
# currently my_queue contains five elements:
# deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
print(my_queue) # check my queue looks right
my_queue.popleft() # this removes the first element added
# currently my_queue contains four elements:
# deque(["Harry", "Hermione", "Ron", "Severus"])
my_queue.append("Voldemort") # this adds a new element to the queue
# currently my_queue contains five elements:
# deque(["Harry", "Hermione", "Ron", "Severus", "Voldemort"])
my_queue.popleft() # this removes the first element added
# currently my_queue contains four elements:
# deque(["Hermione", "Ron", "Severus", "Voldemort"])
my_queue = dueue(["Draco", "Harry", "Hermione", "Ron", "Severus"])
contains five elements
-
my_queue.popleft()
removes the first element from the left, in this case "Draco" at the moment my_queue is composed by:deque(["Harry", "Hermione", "Ron", "Severus"])
-
my_queue.append("Voldemort")
adds the chosen element, in this case "Voldemord", in the queue at the moment my_queue is composed by:deque(["Harry", "Hermione", "Ron", "Severus", "Voldemord"])
-
my_queue.popleft()
removes the first element from the left, in this case "Harry" at the moment my_queue is composed by:deque(["Hermione", "Ron", "Severus", "Voldemord"])
Finally my_queue
contains four elements: "Hermione", "Ron", "Severus", "Voldemord".
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])- initial state of the queue
By executing my_queue.popleft() - we remove "Draco" from the queue, rule of the queue FIFO - current state of the queue ["Harry", "Hermione", "Ron", "Severus"])
By my_queue.append("Voldemort") - we add "Voldemort" at the back of the queue, and now it looks like this -current state of the queue -["Harry", "Hermione", "Ron", "Severus", Voldemort"]
Next we execute once again my_queue.popleft() - we remove the 1st element on the left side, which in this case is "Harry"
So the final look of the queue should be ["Hermione", "Ron", "Severus", Voldemort"]
#Consider to have a queue obtained by processing, one by one,
#the elements included in the list of the first exercise,
# i.e. my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"]).
#Describe the status of my_queue after the execution of each of the following operations:
#my_queue.popleft(), my_queue.append("Voldemort"), my_queue.popleft().
from collections import deque
Grinwald_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
Grinwald_queue.popleft()
#this operation modifies the queue "Grinwald_queue" removing the first element "Draco"
#currently "Grinwald_queue" contains four elements:
# deque(["Harry", "Hermione", "Ron", "Severus"])
Grinwald_queue.append("Voldemort")
#this operation modifies the queue "Grinwald_queue" adding the new element "Voldemort"
#currently "Grinwald_queue" contains five elements:
# deque(["Harry", "Hermione", "Ron", "Severus","Voldemort"])
Grinwald_queue.popleft()
#this operation modifies the queue "Grinwald_queue" removing the first element "Draco"
#currently "Grinwald_queue" contains four elements:
# deque(["Hermione", "Ron", "Severus","Voldemort"])
print (Grinwald_queue)
deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])
my_queue = deque ( ["Draco", "Harry", "Hermione", "Ron", "Severus"] )
my_queue.popleft( )
``` #'Draco' is extracted from my_queue because the element on the left is supposed to be removed first.
print (my_queue)
deque ( ['Harry', 'Hermione', 'Ron', 'Severus'])
my_queue.append("Voldemort")
print (my_queue)
deque ( ['Harry', 'Hermione', 'Ron', 'Severus', 'Voldemort'])
# 'Voldemort' is added at the end on the right.
my_queue.popleft( )
#'Harry' is extracted from my_queue because the element on the left is supposed to be removed first.
print (my_queue)
deque ( ['Hermione', 'Ron', 'Severus', 'Voldemort'] )
So; after the execution of each of the following operations, my_queue is ( ['Hermione', 'Ron', 'Severus', 'Voldemort'] ) .
my_queue=deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft() my_queue=deque(["Harry", "Hermione", "Ron", "Severus"])
my_queue.append("Voldemort") my_queue=deque(["Harry", "Hermione", "Ron", "Severus", "Voldemort"])
my_queue.popleft() my_queue=deque(["Hermione", "Ron", "Severus", "Voldemort"])
1 from collections import deque 2 harry_potter_und_ein_stein = deque(["Draco","Harry","Hermione","Ron","Severus"]) 3 harry_potter_und_ein_stein.popleft() 4 harry_potter_und_ein_stein.append("Voldemort") 5 harry_potter_und_ein_stein.popleft()
In line 3, "Draco" is removed from the queue. The queue now contains "Harry", "Hermione", "Ron", and "Severus". In line 4, "Voldemort" is added to the queue on the right. The queue now contains "Harry", "Hermione", "Ron", "Severus", and "Voldemort". In line 5, "Harry" is removed from the queue. The queue now contains "Hermione", "Ron", "Severus", and "Voldemort".
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
- my_queue.popleft my_deque("Harry", "Hermione", "Ron", "Severus") #delete the first element of the stack, in this case "Draco"
- my_queue.append("Voldemort") my_queue("Harry", "Hermione", "Ron", "Severus", "Voldemort") #add a new element at the end of the queue
- my_queue.leftpop() my_queue("Hermione", "Ron", "Severus", "Voldemort") #remove the first left item, according to the FIFO rule.
from collections import deque
#import deque from module collections as before
potter_stack = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
#my queue has five strings, "Draco", "Harry", "Hermione", "Ron", "Severus"
potter_stack.popleft()
#the first element from the left ("Draco") has been removed from the queue
potter_stack.append("Voldemort")
#"Voldemort" has been added as the rightmost element (after "Severus")
potter_stack.popleft()
#the first element from the left ("Harry") has been removed from the queue, leaving, in order, "Hermione", "Ron", "Severus" and "Voldemort"
print(potter_stack)
my_queue=deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft() #it removes the first inserted element #output my_queue (["Harry", "Hermione", "Ron", "Severus"]) my_queue.append("Voldemort") #it adds one element at the end of the queue #output my_queue (["Harry","Hermione","Ron","Severus","Voldemort"]) my_queue.popleft() #it removes the left-most element of the queue #my_queue became (["Hermione","Ron", "Severus","Voldemort"])
harry_potter_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"]) #creates stack harry_potter_queue.popleft() #takes "Draco" out since it is the first element of the queue harry_potter_queue.append("Voldemort") #adds "Voldemort" to the right of the queue harry_potter_queue.popleft() #takes "Harry" out Thus: 'Hermione', 'Ron', 'Severus', 'Voldemort'
from collections import deque
harry_potter_stack = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
harry_potter_stack.popleft()
harry_potter_stack.append("Voldemort")
harry_potter_stack.popleft()
print(harry_potter_stack)
deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft () # Draco is remove, because in this case the first it’s the first out my_queue = deque([ "Harry", "Hermione", "Ron", "Severus"])
My_queque.append (“Voldemort”) #add Voldermort at the end of the queue my_queue = deque([ "Harry", "Hermione", "Ron", "Severus", “Voldemort”])
my_queue.popleft () # Harry is remove, because in this case the first it’s the first out my_queue = deque( "Hermione", "Ron", "Severus", “Voldemort”])
Consider to have a queue obtained by processing, one by one, the elements included in the list of the first exercise, i.e. my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"]). Describe the status of my_queue after the execution of each of the following operations: my_queue.popleft(), my_queue.append("Voldemort"), my_queue.popleft().
Let's first create the queue:
my_queue = deque() my_queue.append("Draco") my_queue.append("Harry") my_queue.append("Hermione") my_queue.append("Ron") my_queue.append("Severus")
print(my_queue)
Result: ['Draco', 'Harry', 'Hermione', 'Ron', 'Severus']
Since in a queue, the first element added is even the first that is deleted (FIFO strategy): my_queue.popleft() --> this operation would remove "Draco", because it was the first element added my_queue.append("Voldemort") --> this operation would add "Voldemort" as the last item on the right my_queue.popleft () --> this operation would remove "Harry", which was the second element added after "Draco", so the first element still present in the queue
my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"])
my_queue.popleft() #it removes the first element added which is Draco
my_queue.append("Voldemort") #it adds a name in this case Voldemort
my_queue.popleft() #it removes the first element added which is Harry
Output would be [“Hermione", "Ron", "Severus", Voldemort"]
characters_queue = deque() characters_queue.append("Draco") characters_queue.append("Harry") characters_queue.append("Hermione") characters_queue.append("Ron") characters_queue.append("Severus") characters_queue.popleft() characters_queue.append("Voldemort") characters_queue.popleft() print(characters_queue) The first operation (characters_queue.popleft()) cancelled the first element added in the queue ("Draco"). The opertion characters_queue.append("Voldemort") added the string "Voldemort". The last operation (characters_queue.popleft()) cancelled the first element in the queue ("Harry").
my_hp_queue = deque() my_hp_queue.append("Draco") my_hp_queue.append("Harry") my_hp_queue.append("Hermione") my_hp_queue.append("Ron") my_hp_queue.append("Severus")
print (my_hp_queue)
Output ["Draco", "Harry", "Hermione", "Ron", "Severus"]
my_hp_queue.popleft() # removes the first element added my_hp_queue = deque ("Harry", "Hermione", "Ron", "Severus") my_hp_queue.append(Voldemort) # adds Voldemort to the queue my_hp_queue = deque ("Harry", "Hermione", "Ron", "Severus", "Voldemort") my_hp_queue.popleft() # removes the first element added
print (my_hp_queue)
Output [ "Hermione", "Ron", "Severus", "Voldemort"]
from collections import deque my_queue = deque(["Draco", "Harry", "Hermione", "Ron", "Severus"]) print(my_queue) # creates a queue containing 5 elements
my_queue.popleft() print(my_queue) # deletes the first element of the queue "Draco"
my_queue.append("Voldemort") print(my_queue) # adds a new element "Voldemord" at the end of the queue
my_queue.popleft() print(my_queue) # deletes the first element of the queue "Harry"
Here the results obtained after every 'print' stage:
deque(['Draco', 'Harry', 'Hermione', 'Ron', 'Severus']) deque(['Harry', 'Hermione', 'Ron', 'Severus']) deque(['Harry', 'Hermione', 'Ron', 'Severus', 'Voldemort']) deque(['Hermione', 'Ron', 'Severus', 'Voldemort'])