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.
|
||||
- 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**:
|
||||
|
||||
- pop(): Removes and returns the rightmost 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**:
|
||||
|
||||
- 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**:
|
||||
|
||||
- extend(iterable): Extends deque by appending elements from iterable.
|
||||
- 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).
|
||||
|
||||
### 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
|
||||
|
||||
### 1. showing all the operations
|
||||
```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
|
||||
### 1. Finding Maximum in Sliding Window
|
||||
```py
|
||||
from collections import deque
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue