Adds val to the beginning of the deque. Time complexity: O(1) >>> our_deque_1 = Deque([2, 3]) >>> our_deque_1.appendleft(1) >>> our_deque_1 [1, 2, 3] >>> our_deque_2 = Deque('bc') >>> our_deque_2.appendleft('a') >>> our_deque_2
(self, val: Any)
| 139 | assert not self.is_empty(), "Error on appending value." |
| 140 | |
| 141 | def appendleft(self, val: Any) -> None: |
| 142 | """ |
| 143 | Adds val to the beginning of the deque. |
| 144 | Time complexity: O(1) |
| 145 | >>> our_deque_1 = Deque([2, 3]) |
| 146 | >>> our_deque_1.appendleft(1) |
| 147 | >>> our_deque_1 |
| 148 | [1, 2, 3] |
| 149 | >>> our_deque_2 = Deque('bc') |
| 150 | >>> our_deque_2.appendleft('a') |
| 151 | >>> our_deque_2 |
| 152 | ['a', 'b', 'c'] |
| 153 | >>> from collections import deque |
| 154 | >>> deque_collections_1 = deque([2, 3]) |
| 155 | >>> deque_collections_1.appendleft(1) |
| 156 | >>> deque_collections_1 |
| 157 | deque([1, 2, 3]) |
| 158 | >>> deque_collections_2 = deque('bc') |
| 159 | >>> deque_collections_2.appendleft('a') |
| 160 | >>> deque_collections_2 |
| 161 | deque(['a', 'b', 'c']) |
| 162 | >>> list(our_deque_1) == list(deque_collections_1) |
| 163 | True |
| 164 | >>> list(our_deque_2) == list(deque_collections_2) |
| 165 | True |
| 166 | """ |
| 167 | node = self._Node(val, None, None) |
| 168 | if self.is_empty(): |
| 169 | # front = back |
| 170 | self._front = self._back = node |
| 171 | self._len = 1 |
| 172 | else: |
| 173 | # connect nodes |
| 174 | node.next_node = self._front |
| 175 | self._front.prev_node = node |
| 176 | self._front = node # assign new front to the new node |
| 177 | |
| 178 | self._len += 1 |
| 179 | |
| 180 | # make sure there were no errors |
| 181 | assert not self.is_empty(), "Error on appending value." |
| 182 | |
| 183 | def extend(self, iterable: Iterable[Any]) -> None: |
| 184 | """ |