Python - gazpacho - Working with Data: Data Manipulation - dictionary of dictionaries, for loop, nest
Head First Python: A Learner’s Guide to the Fundamentals of Python Programming, A Brain-Friendly Guide、 Paul Barry(著)、 O’Reilly Mediaの Chapter 1L.(Working with Data: Data Manipulation)、SHARPEN YOUR PENCIL(3/45)の解答を求めてみる。
Jupyter(コード、入出力結果)
webapp/WorldRecords.ipynb
RECORDS = (0, 2, 4, 5)
COURSES = ('LC Men', 'LC Women', 'SC Men', 'SC Women')
records = {}
for table, course in zip(RECORDS, COURSES):
records[course] = {}
for row in tables[table].find('tr', mode='all')[1:]:
columns = row.find('td', mode='all')
event = columns[0].text
time = columns[1].text
records[course][event] = time
records
{'LC Men': {'50m freestyle': '20.91',
'100m freestyle': '46.40',
'200m freestyle': '1:42.00',
'400m freestyle': '3:39.96',
'800m freestyle': '7:32.12',
'1500m freestyle': '14:30.67',
'50m backstroke': '23.55',
'100m backstroke': '51.60',
'200m backstroke': '1:51.92',
'50m breaststroke': '25.95',
'100m breaststroke': '56.88',
'200m breaststroke': '2:05.48',
'50m butterfly': '22.27',
'100m butterfly': '49.45',
'200m butterfly': '1:50.34',
'200m individual medley': '1:54.00',
'400m individual medley': '4:02.50',
'4 × 100 m freestyle relay': '3:08.24',
'4 × 200 m freestyle relay': '6:58.55',
'4 × 100 m medley relay': '3:26.78'},
'LC Women': {'50m freestyle': '23.61',
'100m freestyle': '51.71',
'200m freestyle': '1:52.23',
'400m freestyle': '3:55.38',
'800m freestyle': '8:04.79',
'1500m freestyle': '15:20.48',
'50m backstroke': '26.86',
'100m backstroke': '57.13',
'200m backstroke': '2:03.14',
'50m breaststroke': '29.16',
'100m breaststroke': '1:04.13',
'200m breaststroke': '2:17.55',
'50m butterfly': '24.43',
'100m butterfly': '55.18',
'200m butterfly': '2:01.81',
'200m individual medley': '2:06.12',
'400m individual medley': '4:24.38',
'4 × 100 m freestyle relay': '3:27.96',
'4 × 200 m freestyle relay': '7:37.50',
'4 × 100 m medley relay': '3:49.63'},
'SC Men': {'50m freestyle': '19.90',
'100m freestyle': '44.84',
'200m freestyle': '1:38.61',
'400m freestyle': '3:32.25',
'800m freestyle': '7:20.46',
'1500m freestyle': '14:06.88',
'50m backstroke': '22.11',
'100m backstroke': '48.33',
'200m backstroke': '1:45.63',
'50m breaststroke': '24.95',
'100m breaststroke': '55.28',
'200m breaststroke': '2:00.16',
'50m butterfly': '21.32',
'100m butterfly': '47.71',
'200m butterfly': '1:46.85',
'100m individual medley': '49.28',
'200m individual medley': '1:48.88',
'400m individual medley': '3:54.81',
'4 × 50 m freestyle relay': '1:20.77',
'4 × 100 m freestyle relay': '3:01.66',
'4 × 200 m freestyle relay': '6:40.51',
'4 × 50 m medley relay': '1:29.72',
'4 × 100 m medley relay': '3:18.68'},
'SC Women': {'50m freestyle': '22.83',
'100m freestyle': '50.25',
'200m freestyle': '1:50.31',
'400m freestyle': '3:50.25',
'800m freestyle': '7:57.42',
'1500m freestyle': '15:08.24',
'50m backstroke': '25.23',
'100m backstroke': '54.02',
'200m backstroke': '1:58.04',
'50m breaststroke': '28.37',
'100m breaststroke': '1:02.36',
'200m breaststroke': '2:12.50',
'50m butterfly': '23.94',
'100m butterfly': '52.71',
'200m butterfly': '1:59.32',
'100m individual medley': '55.11',
'200m individual medley': '2:01.63',
'400m individual medley': '4:15.48',
'4 × 50 m freestyle relay': '1:32.50',
'4 × 100 m freestyle relay': '3:25.01',
'4 × 200 m freestyle relay': '7:30.13',
'4 × 50 m medley relay': '1:42.35',
'4 × 100 m medley relay': '3:40.41'}}