kopia lustrzana https://github.com/animator/learn-python
changes as per request
rodzic
91318d8743
commit
1954374803
|
@ -19,86 +19,134 @@ d = deque(iterable) # Create deque from iterable (optional)
|
||||||
- append(x): Adds element x to the right end of the deque.
|
- append(x): Adds element x to the right end of the deque.
|
||||||
- appendleft(x): Adds element x to the left end of the deque.
|
- appendleft(x): Adds element x to the left end of the deque.
|
||||||
|
|
||||||
|
### Program
|
||||||
|
```py
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
# Initialize a deque
|
||||||
|
d = deque([1, 2, 3, 4, 5])
|
||||||
|
print("Initial deque:", d)
|
||||||
|
|
||||||
|
# Append elements
|
||||||
|
d.append(6)
|
||||||
|
print("After append(6):", d)
|
||||||
|
|
||||||
|
# Append left
|
||||||
|
d.appendleft(0)
|
||||||
|
print("After appendleft(0):", d)
|
||||||
|
|
||||||
|
```
|
||||||
|
### Output
|
||||||
|
```py
|
||||||
|
Initial deque: deque([1, 2, 3, 4, 5])
|
||||||
|
After append(6): deque([1, 2, 3, 4, 5, 6])
|
||||||
|
After appendleft(0): deque([0, 1, 2, 3, 4, 5, 6])
|
||||||
|
```
|
||||||
|
|
||||||
2. **Removing Elements**:
|
2. **Removing Elements**:
|
||||||
|
|
||||||
- pop(): Removes and returns the rightmost element.
|
- pop(): Removes and returns the rightmost element.
|
||||||
- popleft(): Removes and returns the leftmost element.
|
- popleft(): Removes and returns the leftmost element.
|
||||||
|
|
||||||
|
### Program
|
||||||
|
```py
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
# Initialize a deque
|
||||||
|
d = deque([1, 2, 3, 4, 5])
|
||||||
|
print("Initial deque:", d)
|
||||||
|
|
||||||
|
# Pop from the right end
|
||||||
|
rightmost = d.pop()
|
||||||
|
print("Popped from right end:", rightmost)
|
||||||
|
print("Deque after pop():", d)
|
||||||
|
|
||||||
|
# Pop from the left end
|
||||||
|
leftmost = d.popleft()
|
||||||
|
print("Popped from left end:", leftmost)
|
||||||
|
print("Deque after popleft():", d)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Output
|
||||||
|
```py
|
||||||
|
Initial deque: deque([1, 2, 3, 4, 5])
|
||||||
|
Popped from right end: 5
|
||||||
|
Deque after pop(): deque([1, 2, 3, 4])
|
||||||
|
Popped from left end: 1
|
||||||
|
Deque after popleft(): deque([2, 3, 4])
|
||||||
|
```
|
||||||
|
|
||||||
3. **Accessing Elements**:
|
3. **Accessing Elements**:
|
||||||
|
|
||||||
- deque[index]: Accesses element at index.
|
- deque[index]: Accesses element at index.
|
||||||
|
|
||||||
|
### Program
|
||||||
|
```py
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
# Initialize a deque
|
||||||
|
d = deque([1, 2, 3, 4, 5])
|
||||||
|
print("Initial deque:", d)
|
||||||
|
|
||||||
|
# Accessing elements
|
||||||
|
print("Element at index 2:", d[2])
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Output
|
||||||
|
```py
|
||||||
|
Initial deque: deque([1, 2, 3, 4, 5])
|
||||||
|
Element at index 2: 3
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
4. **Other Operations**:
|
4. **Other Operations**:
|
||||||
|
|
||||||
- extend(iterable): Extends deque by appending elements from iterable.
|
- extend(iterable): Extends deque by appending elements from iterable.
|
||||||
- extendleft(iterable): Extends deque by appending elements from iterable to the left.
|
- extendleft(iterable): Extends deque by appending elements from iterable to the left.
|
||||||
- rotate(n): Rotates deque n steps to the right (negative n rotates left).
|
- rotate(n): Rotates deque n steps to the right (negative n rotates left).
|
||||||
|
|
||||||
|
### Program
|
||||||
|
```py
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
# Initialize a deque
|
||||||
|
d = deque([1, 2, 3, 4, 5])
|
||||||
|
print("Initial deque:", d)
|
||||||
|
|
||||||
|
# Extend deque
|
||||||
|
d.extend([6, 7, 8])
|
||||||
|
print("After extend([6, 7, 8]):", d)
|
||||||
|
|
||||||
|
# Extend left
|
||||||
|
d.extendleft([-1, 0])
|
||||||
|
print("After extendleft([-1, 0]):", d)
|
||||||
|
|
||||||
|
# Rotate deque
|
||||||
|
d.rotate(2)
|
||||||
|
print("After rotate(2):", d)
|
||||||
|
|
||||||
|
# Rotate left
|
||||||
|
d.rotate(-3)
|
||||||
|
print("After rotate(-3):", d)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Output
|
||||||
|
```py
|
||||||
|
Initial deque: deque([1, 2, 3, 4, 5])
|
||||||
|
After extend([6, 7, 8]): deque([1, 2, 3, 4, 5, 6, 7, 8])
|
||||||
|
After extendleft([-1, 0]): deque([0, -1, 1, 2, 3, 4, 5, 6, 7, 8])
|
||||||
|
After rotate(2): deque([7, 8, 0, -1, 1, 2, 3, 4, 5, 6])
|
||||||
|
After rotate(-3): deque([1, 2, 3, 4, 5, 6, 7, 8, 0, -1])
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
### 1. showing all the operations
|
### 1. Finding Maximum in Sliding Window
|
||||||
```py
|
|
||||||
from collections import deque
|
|
||||||
|
|
||||||
# Initialize a deque
|
|
||||||
d = deque([1, 2, 3, 4, 5])
|
|
||||||
print("Initial deque:", d)
|
|
||||||
|
|
||||||
# Append elements
|
|
||||||
d.append(6)
|
|
||||||
print("After append(6):", d)
|
|
||||||
|
|
||||||
# Append left
|
|
||||||
d.appendleft(0)
|
|
||||||
print("After appendleft(0):", d)
|
|
||||||
|
|
||||||
# Pop from the right end
|
|
||||||
rightmost = d.pop()
|
|
||||||
print("Popped from right end:", rightmost)
|
|
||||||
print("Deque after pop():", d)
|
|
||||||
|
|
||||||
# Pop from the left end
|
|
||||||
leftmost = d.popleft()
|
|
||||||
print("Popped from left end:", leftmost)
|
|
||||||
print("Deque after popleft():", d)
|
|
||||||
|
|
||||||
# Accessing elements
|
|
||||||
print("Element at index 2:", d[2])
|
|
||||||
|
|
||||||
# Extend deque
|
|
||||||
d.extend([6, 7, 8])
|
|
||||||
print("After extend([6, 7, 8]):", d)
|
|
||||||
|
|
||||||
# Extend left
|
|
||||||
d.extendleft([-1, 0])
|
|
||||||
print("After extendleft([-1, 0]):", d)
|
|
||||||
|
|
||||||
# Rotate deque
|
|
||||||
d.rotate(2)
|
|
||||||
print("After rotate(2):", d)
|
|
||||||
|
|
||||||
# Rotate left
|
|
||||||
d.rotate(-3)
|
|
||||||
print("After rotate(-3):", d)
|
|
||||||
```
|
|
||||||
Output
|
|
||||||
```py
|
|
||||||
Initial deque: deque([1, 2, 3, 4, 5])
|
|
||||||
After append(6): deque([1, 2, 3, 4, 5, 6])
|
|
||||||
After appendleft(0): deque([0, 1, 2, 3, 4, 5, 6])
|
|
||||||
Popped from right end: 6
|
|
||||||
Deque after pop(): deque([0, 1, 2, 3, 4, 5])
|
|
||||||
Popped from left end: 0
|
|
||||||
Deque after popleft(): deque([1, 2, 3, 4, 5])
|
|
||||||
Element at index 2: 3
|
|
||||||
After extend([6, 7, 8]): deque([1, 2, 3, 4, 5, 6, 7, 8])
|
|
||||||
After extendleft([-1, 0]): deque([0, -1, 1, 2, 3, 4, 5, 6, 7, 8])
|
|
||||||
After rotate(2): deque([7, 8, 0, -1, 1, 2, 3, 4, 5, 6])
|
|
||||||
After rotate(-3): deque([1, 2, 3, 4, 5, 6, 7, 8, 0, -1])
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Finding Maximum in Sliding Window
|
|
||||||
```py
|
```py
|
||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue