Question: python please only need __in__ and __getitem__ len 1 def counting_queue_len(self): 2 # YOUR CODE HERE 3 a = @ 4 5 for i in

![in self.queue: a +- 1[1] 6 7 8 9 10 return a](https://dsd5zvtm8ll6.cloudfront.net/si.experts.images/questions/2024/09/66f460c442781_58766f460c3cf276.jpg)
![11 CountingQueue. _len_ - counting_queue_len 12 [11] E @ 1 # 5](https://dsd5zvtm8ll6.cloudfront.net/si.experts.images/questions/2024/09/66f460c4e9f56_58866f460c483b48.jpg)

![q.add("cat") 6 q.add("dog") 7 assert len(9) == 2 8 [12] == 1](https://dsd5zvtm8ll6.cloudfront.net/si.experts.images/questions/2024/09/66f460c6c5122_59066f460c66cadb.jpg)
len 1 def counting_queue_len(self): 2 # YOUR CODE HERE 3 a = @ 4 5 for i in self.queue: a +- 1[1] 6 7 8 9 10 return a 11 CountingQueue. _len_ - counting_queue_len 12 [11] E @ 1 # 5 points. Simple tests 2 3 4 = CountingQueue() 4 assert len(9) 5 q.add("cat") 6 q.add("dog") 7 assert len(9) == 2 8 [12] == 1 - 2 1 # 5 points. More complicated tests. 2 3 q = CountingQueue() 4 assert len(a) 5 q.add("cat") 6 q.add("cat") 7 assert len(q.queue) 8 assert len(9) 9 q.add("dog") 1e assert len() == 3 11 assert len(q.queue) 12 q.add("dog") 13 assert len(9) 14 assert len(9) -- 4 # Hey, just in case you went for the quantum-mechanical solution :-) 15 assert len(9) -- 4 16 assert len(q.queue) == 2 17 == 2 24 1 # 5 points. Works same as Queue. 2 3 import random 4 000 AWN 5 for k in range(100): q8 - Queue () 91 = CountingQueue() for in range(100): 9 el random.choice(["a", "b", "c"]) qe.add(el) 11 91.add(el) 12 assert len(90) == len(91) 13 assert len(qe.queue) >= len(91.queue) 14 10 iter [14] 1 def counting_queue_iter(self): # YOUR CODE HERE 2 3 4 for i in range(len(self.queue)): 5 for j in range(self.queue[i][1]): 7 yield self.queue[i][0] 8 9 10 CountingQueue. _iter__ counting_queue_iter 11 + N 000 [15] 1 # 5 points. Simple tests. 2 39 - CountingQueue() 4 q.add("cat", count=2) 5 q.add("dog", count=3) 6 assert [x for x in q] ["cat"] * 2 + ["dog"] * 3 7 2 [16] 4 1 # 5 points. Works the same as queue. 2 3 for k in range(108): q@ Queue() 5 qi CountingQueue() 6 for in range(100): 7 el = random.choice(["a", "b", "{"]) 8 qe.add(el) 9 91.add(el) 18 assert [x for x in qe] = [x for x in q1] 000 N 11 in 1 def counting_queue_in(self, el): # YOUR CODE HERE 2 OWN 4 5 6 CountingQueue. _in__ = counting_queue_in 7 1 # points. Simple cases. 2 34 = CountingQueue) 4 assert "cat" not in a 5 q.add("cat", count=2) 6 assert "cat" in q 7 assert "dog not in a 8 q.add("dog") 9 assert "cat" in a 10 assert "dog in a 11 q.get() 12 assert "cat" in a 13 assert "dog" in q 14 q.get() 15 assert "cat" not in a 16 assert "dog" in q 17 q.get() 1 # o points. Behaves the same as Queue. 3 elements = range(5) 4 for k in range (100): 5 qe = Queue) 6 91 = CountingQueue() for in range(20): 8 el = random.choice(elements) qo.add(el) 10 qi.add(el) for x in elements: 12 assert (x in qe) = (x in q1) 13 000 OWN 7 9 11 w Ni == _getitem ( 1 def counting queue_getiten(self, n): 2 # YOUR CODE HERE 3 4 CountingQueue. _getitem_= counting queue_getitem 5 [] W NA 1 # 5 points: simple tests. 2 39 CountingQueue) 4 q.add("cat", count=2) 5 q.add("dog", count=3) 6 q.add("bird", count=4) 7 els [q[i] for i in range(9)] 8 assert els ['cat'] * 2 + ['dog'] * 3 + ['bird'] * 4 9 # Let's do it again. 10 els [q[i] for i in range(9)] 11 assert els == ['cat'] * 2 + ['dog'] * 3+ ['bird'] * 4 12 = 2 1 # 5 points: you raise IndexError when accessing elements out of bounds. 3 4 = CountingQueue() 4 q.add("cat", count=2) 5 q.add("dog", count=3) 6 7 # Raise IndexError when it's too high... 8 try: 9 9[5] 18 assert False, "Failed to raise IndexError" 11 except IndexError: 12 pass 13 assert q[4] "dog" 14 try: 15 9[5] 16 assert False, "Failed to raise IndexError" 17 except IndexError: 18 pass 19 20 # And also when it's too low. 21 try: 22 9[-10] 23 assert False, "Failed to raise IndexError" 24 except IndexError: 25 pass 26 27 # or too large: 28 try: 29 9[10] assert False, "Failed to raise IndexError": 31 except IndexError: 32 pass 33 34 # And raise TypeError if you try to index with a non-integer. 35 try: 36 q["hello"] 37 assert False, "Failed to raise TypeError 38 except TypeError: 39 pass 40 30 41 [] = 5 = 1 # 5 points. Behaves the same as Queue. 2 3 elements = range(3) 4 for k in range (100): 5 qo Queue) 6 q1 CountingQueue() 7 for min range(40): 8 el random.choice (elements) 9 qo.add(el) 10 q1.add(el) for i in range(m): 12 assert qe[i] == 91[i] 13 11
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
