Skip to content

Commit 8fd9eb0

Browse files
authored
Merge branch 'heikkitoivonen:main' into main
2 parents 7db7683 + e7134ca commit 8fd9eb0

4 files changed

Lines changed: 620 additions & 17 deletions

File tree

docs/builtins/bytes.md

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,70 @@ The `bytes` type is an immutable sequence of bytes, while `bytearray` is the mut
6868

6969
| Operation | Time | Space | Notes |
7070
|-----------|------|-------|-------|
71+
| `len()` | O(1) | O(1) | Direct lookup |
72+
| `access[i]` | O(1) | O(1) | Direct indexing |
73+
| `in` (membership) | O(n) | O(1) | Linear search |
74+
| **Mutation** ||||
7175
| `append(x)` | O(1)* | O(1) | Amortized, may resize |
72-
| `insert(i, x)` | O(n) | O(1) | Shift elements |
7376
| `extend(iterable)` | O(k) | O(k) | k = length |
77+
| `insert(i, x)` | O(n) | O(1) | Shift elements |
7478
| `pop()` | O(1) | O(1) | Remove last |
75-
| `pop(0)` | O(n) | O(1) | Shift remaining |
79+
| `pop(i)` | O(n) | O(1) | Remove at index; shifts remaining |
7680
| `remove(x)` | O(n) | O(1) | Search and remove |
7781
| `clear()` | O(n) | O(1) | Deallocate |
7882
| `copy()` | O(n) | O(n) | Shallow copy |
7983
| `reverse()` | O(n) | O(1) | Reverse in-place |
8084
| `resize(n)` | O(n) | O(1) | Resize to n bytes; may truncate or zero-fill |
85+
| **Search** ||||
86+
| `find(sub)` | O(n + m) avg | O(1) | n = length, m = pattern length |
87+
| `rfind(sub)` | O(n*m) worst | O(1) | Search from right |
88+
| `index(sub)` | O(n) | O(1) | Like find() but raises ValueError |
89+
| `rindex(sub)` | O(n*m) worst | O(1) | Like rfind() but raises ValueError |
90+
| `count(sub)` | O(n) | O(1) | Count non-overlapping occurrences |
91+
| `startswith(prefix)` | O(m) | O(1) | m = prefix length |
92+
| `endswith(suffix)` | O(m) | O(1) | m = suffix length |
93+
| **Replace/Translate** ||||
94+
| `replace(old, new)` | O(n) | O(n) | Creates new bytearray |
95+
| `translate(table)` | O(n) | O(n) | Single pass with table lookup |
96+
| `maketrans(from, to)` | O(k) | O(k) | k = mapping size; static method |
97+
| `expandtabs(tabsize)` | O(n) | O(n) | Replace tabs with spaces |
98+
| `removeprefix(prefix)` | O(n) | O(n) | Returns slice if prefix matches |
99+
| `removesuffix(suffix)` | O(n) | O(n) | Returns slice if suffix matches |
100+
| **Split/Join** ||||
101+
| `split(sep)` | O(n) | O(n) | Single pass |
102+
| `rsplit(sep)` | O(n) | O(n) | Split from right |
103+
| `splitlines()` | O(n) | O(n) | Split on line boundaries |
104+
| `partition(sep)` | O(n) | O(n) | Split into 3-tuple at first sep |
105+
| `rpartition(sep)` | O(n) | O(n) | Split into 3-tuple at last sep |
106+
| `join(iterable)` | O(n) | O(n) | n = total output length |
107+
| **Case Conversion** ||||
108+
| `upper()` | O(n) | O(n) | ASCII uppercase |
109+
| `lower()` | O(n) | O(n) | ASCII lowercase |
110+
| `capitalize()` | O(n) | O(n) | Uppercase first, lowercase rest |
111+
| `title()` | O(n) | O(n) | Titlecase words |
112+
| `swapcase()` | O(n) | O(n) | Swap upper/lower |
113+
| **Stripping** ||||
114+
| `strip(chars)` | O(n) | O(n) | Remove from both ends |
115+
| `lstrip(chars)` | O(n) | O(n) | Remove from left |
116+
| `rstrip(chars)` | O(n) | O(n) | Remove from right |
117+
| **Padding/Alignment** ||||
118+
| `center(width)` | O(n) | O(n) | Pad both sides |
119+
| `ljust(width)` | O(n) | O(n) | Pad right side |
120+
| `rjust(width)` | O(n) | O(n) | Pad left side |
121+
| `zfill(width)` | O(n) | O(n) | Pad with zeros |
122+
| **Predicates** ||||
123+
| `isalnum()` | O(n) | O(1) | Check alphanumeric |
124+
| `isalpha()` | O(n) | O(1) | Check alphabetic |
125+
| `isascii()` | O(n) | O(1) | Check ASCII (Python 3.7+) |
126+
| `isdigit()` | O(n) | O(1) | Check digit chars |
127+
| `islower()` | O(n) | O(1) | Check lowercase |
128+
| `isspace()` | O(n) | O(1) | Check whitespace |
129+
| `istitle()` | O(n) | O(1) | Check titlecase |
130+
| `isupper()` | O(n) | O(1) | Check uppercase |
131+
| **Encoding** ||||
132+
| `decode(encoding)` | O(n) | O(n) | Convert to string |
133+
| `hex()` | O(n) | O(n) | Convert to hex string |
134+
| `fromhex(string)` | O(n) | O(n) | Create bytearray from hex; class method |
81135

82136
## Implementation Details
83137

docs/stylesheets/extra.css

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
.footer-meta {
77
align-items: center;
88
display: flex;
9-
flex-wrap: wrap;
9+
flex-wrap: nowrap;
1010
gap: 0.5rem 1rem;
1111
width: 100%;
1212
}
@@ -15,6 +15,8 @@
1515
display: flex;
1616
flex-direction: column;
1717
gap: 0.25rem;
18+
min-width: 0;
19+
flex: 1 1 auto;
1820
}
1921

2022
.footer-meta__right {
@@ -40,16 +42,3 @@
4042
overflow: visible;
4143
text-overflow: clip;
4244
}
43-
44-
@media screen and (max-width: 44em) {
45-
.footer-meta {
46-
flex-direction: column;
47-
align-items: stretch;
48-
}
49-
50-
.footer-meta__right {
51-
display: flex;
52-
justify-content: flex-end;
53-
margin-left: 0;
54-
}
55-
}

0 commit comments

Comments
 (0)