Skip to content

Commit d09d18d

Browse files
author
Oliver
committed
ex2_5 store data in 4 lists as columns
1 parent 648a825 commit d09d18d

File tree

2 files changed

+45
-2
lines changed

2 files changed

+45
-2
lines changed

ex2_5.py

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import sys
2+
3+
print("Lists and memory usage")
4+
i = []
5+
print('list ()')
6+
for n in range(1, 1000):
7+
i.append(1)
8+
if n%100 == 0:
9+
print(f'for {len(i)} items the size is {sys.getsizeof(i):,} bytes')
10+
11+
r = {'route': '22', 'date': '01/01/2001', 'daytype': 'U', 'rides': 7354}
12+
print(sys.getsizeof(r))
13+
print('dict {}')
14+
for n in range(1, 1000):
15+
r[str(n)] = 10
16+
if n%100 == 0:
17+
print(f'for {n} items the size is {sys.getsizeof(r):,} bytes')
18+
19+
r = {'route': '22', 'date': '01/01/2001', 'daytype': 'U', 'rides': 7354}
20+
print(sys.getsizeof(r))
21+
nrows=577563
22+
print(f'store nrows of data at 240bytes per row: {(nrows*240)/1048576:,.2f}')
23+
print(f'store nrows of data in 4 lists as 8 bytes per element (32bytes a row): {(nrows*4*8)/1048576:,.2f}')

readrides.py

+22-2
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,27 @@ def run_test(function_name, class_name=None):
129129
tracemalloc.stop()
130130
end_time = time.time()
131131
elapsed_time = end_time - start_time
132-
return (current,peak,elapsed_time)
132+
return (current, peak, elapsed_time)
133+
134+
135+
def read_rides_as_columns(filename):
136+
'''
137+
Read the bus ride data into 4 lists, representing columns
138+
'''
139+
140+
routes = []
141+
dates = []
142+
daytypes = []
143+
numrides = []
144+
with open(filename) as f:
145+
rows = csv.reader(f)
146+
headins = next(rows)
147+
for row in rows:
148+
routes.append(row[0])
149+
dates.append(row[1])
150+
daytypes.append(row[2])
151+
numrides.append(int(row[3]))
152+
return dict(routes=routes, dates=dates, daytypes=daytypes, numrides=numrides)
133153

134154

135155
if __name__ == '__main__':
@@ -150,7 +170,7 @@ def run_test(function_name, class_name=None):
150170

151171
for result in results:
152172
print(f'{result[0]}')
153-
print(f'Memory Use: Current {result[1]/ (1024 * 1024):.2f}MB, Peak {result[2] / (1024 * 1024):.2f}MB')
173+
print(f'Memory Use: Current {result[1] / (1024 * 1024):.2f}MB, Peak {result[2] / (1024 * 1024):.2f}MB')
154174
print(f'Elapsed Time: {result[3]:.2f}s\n')
155175

156176
# rows = read_rides_as_dict('Data/ctabus.csv')

0 commit comments

Comments
 (0)