Skip to content

Commit 8fd60f9

Browse files
Manual review of builtin functions: list-dict
1 parent 2d5ec25 commit 8fd60f9

2 files changed

Lines changed: 2 additions & 117 deletions

File tree

docs/builtins/dict_func.md

Lines changed: 0 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -203,70 +203,6 @@ for i in range(100):
203203
data = {f"key_{i}": i for i in range(100)} # O(n)
204204
```
205205

206-
## Practical Examples
207-
208-
### Parse Configuration
209-
210-
```python
211-
# O(n) - convert pairs to config dict
212-
config_pairs = [
213-
("timeout", 30),
214-
("retries", 3),
215-
("debug", True),
216-
]
217-
218-
config = dict(config_pairs)
219-
# {'timeout': 30, 'retries': 3, 'debug': True}
220-
```
221-
222-
### Map Names to Values
223-
224-
```python
225-
# O(n) - create mapping
226-
names = ["Alice", "Bob", "Charlie"]
227-
values = [1, 2, 3]
228-
229-
mapping = dict(zip(names, values))
230-
# {'Alice': 1, 'Bob': 2, 'Charlie': 3}
231-
232-
# Useful for CSV data
233-
headers = ["name", "age", "city"]
234-
row = ["Alice", 30, "NYC"]
235-
record = dict(zip(headers, row))
236-
# {'name': 'Alice', 'age': 30, 'city': 'NYC'}
237-
```
238-
239-
### Create Lookup Table
240-
241-
```python
242-
# O(n) - build lookup from data
243-
items = ["apple", "banana", "cherry"]
244-
lookup = dict(enumerate(items))
245-
# {0: 'apple', 1: 'banana', 2: 'cherry'}
246-
247-
# Or reverse
248-
reverse_lookup = {v: k for k, v in lookup.items()}
249-
# {'apple': 0, 'banana': 1, 'cherry': 2}
250-
```
251-
252-
### Initialize with Defaults
253-
254-
```python
255-
# O(n) - create with initial values
256-
keys = ["a", "b", "c", "d"]
257-
initial_value = 0
258-
259-
# Using dict comprehension
260-
defaults = {k: initial_value for k in keys} # O(n)
261-
262-
# Or with dict() - but requires pairs
263-
defaults = dict((k, initial_value) for k in keys) # O(n)
264-
265-
# defaultdict is O(1) for access, but setup is similar
266-
from collections import defaultdict
267-
defaults = defaultdict(int) # O(1) setup, O(1) per access
268-
```
269-
270206
## Edge Cases
271207

272208
### Empty Dictionary

docs/builtins/list_func.md

Lines changed: 2 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,9 @@ original = [1, 2, 3, 4, 5]
7171
copy = list(original) # O(5) - shallow copy
7272

7373
# Each element is accessed once
74+
copy = []
7475
for item in iterable: # O(n)
75-
append to list
76+
copy.append(item)
7677

7778
# vs slicing - also O(n)
7879
copy = original[:] # O(n) - same complexity
@@ -187,58 +188,6 @@ lst = [x**2 for x in range(100)] # O(100)
187188
# Comprehensions often faster
188189
```
189190

190-
## Practical Examples
191-
192-
### Parse CSV
193-
194-
```python
195-
# O(n) - convert strings to list of values
196-
csv_line = "1,2,3,4,5"
197-
values = csv_line.split(",") # ['1', '2', '3', '4', '5']
198-
199-
# Convert to integers
200-
numbers = list(map(int, values)) # O(n)
201-
```
202-
203-
### Remove Duplicates (Preserve Order)
204-
205-
```python
206-
# O(n) - convert to set then back
207-
items = [1, 2, 2, 3, 3, 3, 4]
208-
unique = list(dict.fromkeys(items)) # [1, 2, 3, 4] - O(n)
209-
210-
# Preserves first occurrence order
211-
```
212-
213-
### Flatten Nested Lists
214-
215-
```python
216-
# O(n) - flatten one level
217-
nested = [[1, 2], [3, 4], [5, 6]]
218-
flat = []
219-
for sublist in nested:
220-
flat.extend(sublist) # O(n) total
221-
222-
# Using list concatenation
223-
flat = sum(nested, []) # O(n) - but slower due to copying
224-
225-
# Better - list comprehension
226-
flat = [x for sublist in nested for x in sublist] # O(n)
227-
```
228-
229-
### Read File Lines
230-
231-
```python
232-
# O(n) - read all lines
233-
with open("file.txt") as f:
234-
lines = list(f) # O(n) - each line is one item
235-
# lines = ["line1\n", "line2\n", ...]
236-
237-
# vs
238-
with open("file.txt") as f:
239-
lines = f.readlines() # O(n) - same result
240-
```
241-
242191
## Edge Cases
243192

244193
### Empty Iterable

0 commit comments

Comments
 (0)